如果要乙個系統出多個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 第乙個方法返回沒有名稱的根日誌記錄器。第二個方法按名...