storm的日誌問題

2021-09-01 17:39:36 字數 884 閱讀 9354

由於目前的流計算專案要加監控和報警,因此規範的日誌是必須的條件。測試了以後才發現storm的日誌原來有個很大的坑。

基本問題如下:storm採用的也是log4j去列印日誌,預設的日誌配置檔案是storm安裝目錄下面的storm/log4j/storm.log.properties。而且檔名會以work+埠號來區分,個人感覺非常的不好排查問題。因此就想在應用中使用自己的log4j檔案,這樣storm自己的container用它自己的預設log4j配置,我們的應用程式用自定義的log4j檔案。測試了一下,發現根本沒有用。

最初我只是把log4j.properties載入resources包下面的,沒有顯式的去指定,因此個人感覺可能container會去替換掉它,所以才導致自定義的properties無法生效。所以第二步就通過propertyconfigurator+properties類去顯式的載入自定義的properties檔案,這次發現確實載入了自定義的配置,而且在我配置錯誤路徑時還會提示我找不到該檔案。不過最後還是不能完成自定義的功能。

實在很無語的時候,看之前同事的**中進入時手工的呼叫了properties的set方法去設定自定義日誌。不知道有木有用,自己也測試了一下,發現確實很好使,不過,這樣的方式也太ugly了。因此就像先呼叫了乙個properties去load,然後去set另外乙個propertes。最後把這個properties設定進去。試了一下,答案是no。好吧,猜測是它替換了我的log4j.properties。那麼我能不能不用log4j這個名字呢?改一下名字成為a.properties。測試了一下非常好使。在想這樣能否不用兩個properties,直接去load呢?測試了一下發現也還是很好使的。

不過,個人還是蠻好奇,storm的container怎麼去替換掉我的log4j.properties?下了storm的源**,clojure有點坑爹的說

storm日誌配置

storm中的日誌級級別預設為info,並且,日誌檔案是根據worker號來進行區分的,這樣,同乙個log檔案中的資訊不一定是乙個業務的,這樣就會有以下兩個需求出現 1.想要進行一些除錯資訊的輸出 2.除錯資訊或者業務日誌資訊想要輸出到一些固定的檔案中 不要怕,不要煩惱,其實storm已經提供了這樣...

storm 自定義 日誌檔案

storm中的日誌級級別預設為info,並且,日誌檔案是根據worker號來進行區分的,這樣,同乙個log檔案中的資訊不一定是乙個業務的,這樣就會有以下兩個需求出現 1.想要進行一些除錯資訊的輸出 2.除錯資訊或者業務日誌資訊想要輸出到一些固定的檔案中 不要怕,不要煩惱,其實storm已經提供了這樣...

storm安裝 3 storm本身的安裝

這裡我用的版本是storm 0.8.2.zip 新增許可權 chmod x storm 0.8.2.zip 進行檔案的解壓 unzip storm 0.8.1.zip 如果沒有安裝unzip,可以使用 yum install unzip進行安裝 然後把解壓的檔案複製到 usr local 資料夾中 ...