一直沒很注意的log4j

2021-09-01 07:38:42 字數 1460 閱讀 6809

如果要乙個系統出多個log檔案,每個出相應的模組.

根路徑下的所有logger輸出都會受到影響,但是優先順序最低,可以被任意特定的包設定覆蓋。所以這裡的a2會被覆蓋.root下的是所有的資訊都會輸入到後邊的(紅色)路徑下.

程式裡我這樣寫:

static logger logger = logger.getlogger ("protocal") ;

配置裡我這樣寫:

log4j.logger.protocal=info,operatefile

log4j.additivity.protocal=false

原來不只是用class

日誌輸出也有編碼,不然中文會亂碼,logfile指相應的log檔案

linux預設儲存的編碼是utf8的,而windows預設用gb2312和gb18030的,

要在windows下檢視utf8的檔案,你裝個notepad++,utraledit或notepad2之類的檢視工具,

用這些工具開啟linux文字就正常了。

包設定的日誌級別高於rootlogger設定的級別

#root level

log4j.rootlogger=error, [color=red]stdout, a2[/color]#console config

#file config

[color=red]#tradeweb level對應每個包所做的日誌[/color]log4j.logger.tpme.mebs.timebargain.tradeweb=info

log4j.logger.tpme.mebs.timebargain.tradeweb.util=info

log4j.logger.tpme.mebs.timebargain.tradeweb.service=debug

log4j.logger.tpme.mebs.timebargain.tradeweb.dao=debug

log4j.logger.tpme.mebs.timebargain.tradeweb.money=debug,moneyfile

log4j.additivity.tpme.mebs.timebargain.tradeweb.money=false

log4j.logger.tpme.mebs.timebargain.tradeweb.report=debug,reportfile

log4j.additivity.tpme.mebs.timebargain.tradeweb.report=false

#money log

#report log

#tradweb_op log

log4j.logger.tpme.mebs.timebargain.tradeweb.operate=info,operatefile

log4j.additivity.tpme.mebs.timebargain.tradeweb.operate=false

#tradeweb operate

Log4J學習 十六 Log4j的預設啟動流程一

既然要求我們自己來配置log4j,那麼又會出現相關的問題,不管我們採用哪種配置方式,log4j總會要求我們在應用啟動的最開始,完成log4j的配置,所以我們不得不在乙個靜態類的靜態 塊中完成相關的 配置。這對程式設計師和log4j框架本身的使用,都是乙個不友好的設計。考慮到這些因素,log4j提供了...

Log4J學習 十七 Log4j的預設啟動流程二

第二,如果需要不用的應用使用統一的log4j配置,只需要單獨的把log4j.properties檔案或者log4j.xml檔案放到乙個指定的位置,並且使用環境變數log4j.configuration來完成配置檔案的指定。注意,在log4j.configuration的值中,可以使用檔名稱或者url...

log4j記錄不同的日誌 Log4j 日誌記錄方法

logger類具有處理日誌記錄活動的方法。我們可以使用兩個靜態方法建立logger類的例項 public static logger getrootlogger public static logger getlogger string name 第乙個方法返回沒有名稱的根日誌記錄器。第二個方法按名...