log4j配置文件及nutch中的日志配置
生活随笔
收集整理的這篇文章主要介紹了
log4j配置文件及nutch中的日志配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用slf4j作為日志系統時,由于slf4j只是一個接口,它需要一個具體實現來執行。
具體參考http://blog.csdn.net/jediael_lu/article/details/43854571
由于slf4j統一了API接口,因此,若log4j實現來日志輸出,則只需要設置配置文件的內容即可,log4j.properties中的配置可以分成2類:
第一類定義了日志的輸出級別,以及以輸出目標(appender)
第二類定義了appender的具體屬性。
一、日志輸出級別、輸出目標(appender)的定義
1、log4j.rootLogger=日志級別,appender1, appender2, ….示例:log4j.rootLogger=INFO,stdout,DRFA
(1)設置整個工程的日志默認級別,以及日志的輸出目標
(2)日志級別為ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF,不區分大小寫。示例中的日志級別為INFO,即只有大于或者等于INFO的日志才會被記錄。
(3)日志的輸出目標有以下幾類:
- ConsoleAppender(控制臺)
- FileAppender(文件)
- DailyRollingFileAppender(每天產生一個日志文件
- RollingFileAppender(文件大小到達指定尺寸時產生一個新的文件)
- WriteAppender(將日志信息以流格式發送到任意指定的地方)
- JDBCAppender(將日志信息保存到數據庫中)
2、log4j.logger.org.mypackage[.MyClass]=日志級別,appender1, appender2, ….
示例:log4j.logger.org.apache.nutch.crawl.GeneratorJob=INFO,cmdstdout
(1)log4j.rootLogger 中的設置對整個工程生效,若只想對某個包或者某個類生效,可以使用本配置項。
3、log4j.threshold=ALL
In fact , threshold's level should be larger or equals rootlogger's level.
usually, thresold can be used to define some special appender's filter log level.
eg:
there are two appenders: console and file,and the level is warn, if you just only want the error message be written to file, so you can use "file.threshold=error" to filter out the "warn" message.
二、具體某個appender的設置
1、log4j.appender.appender1.File=文件目錄及文件
2、log4j.appender.appender1.MaxFileSize=最大文件大小
3、log4j.appender.appender1.MaxBackupIndex=備份文件個數
?? 其中,appender1是在log4j.rootlogger或者具體包日志中定義過的;
??? 文件目錄及文件,例如,/home/admin/logs/hutudan.log
??? 最大文件大小,例如,100KB
??? 備份文件個數,例如,1
4、log4j.appender.ServerDailyRollingFile.DatePattern=日志后綴格式
??? 例如,'.'yyyy-MM-dd
5、log4j.appender.appender1.layout=org.apache.log4j.日志布局格式
??? HTMLLayout(以HTML表格形式布局)
??? SimpleLayout(包含日志信息的級別和信息字符串)
??? TTCCLayout(包含日志產生的時間,執行緒,類別等信息)
??? PatternLayout(可以靈活的指定布局格式,常用)
6、log4j.appender.appender1.layout.ConversionPattern=日志輸出格式
??? 例如,%d - %m%n或%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
??? %c 輸出日志信息所屬的類的全名
??? %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy-M-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28
??? %f 輸出日志信息所屬的類的類名
??? %l 輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行
??? %m 輸出代碼中指定的信息,如log(message)中的message
??? %n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n”
??? %p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推
??? %r 輸出自應用啟動到輸出該日志信息所耗費的毫秒數
??? %t 輸出產生該日志事件的線程名
??? 可參考:http://blog.sina.com.cn/s/blog_4e4dd5570100qowy.html
7、log4j.appender.ServerDailyRollingFile.Append=true
在后面追加
三、示例:Nutch中的log4j.properties
1、指定log4j.rootLogger
log4j.rootLogger=INFO,DRFA【可選】為單獨某個包或者類指定日志級別及appender
#special logging requirements for some commandline tools log4j.logger.org.apache.nutch.crawl.Crawl=INFO,cmdstdout log4j.logger.org.apache.nutch.crawl.InjectorJob=INFO,cmdstdout log4j.logger.org.apache.nutch.host.HostInjectorJob=INFO,cmdstdout log4j.logger.org.apache.nutch.crawl.GeneratorJob=INFO,cmdstdout log4j.logger.org.apache.nutch.crawl.DbUpdaterJob=INFO,cmdstdout log4j.logger.org.apache.nutch.host.HostDbUpdateJob=INFO,cmdstdout log4j.logger.org.apache.nutch.fetcher.FetcherJob=INFO,cmdstdout log4j.logger.org.apache.nutch.parse.ParserJob=INFO,cmdstdout log4j.logger.org.apache.nutch.indexer.IndexingJob=INFO,cmdstdout log4j.logger.org.apache.nutch.indexer.DeleteDuplicates=INFO,cmdstdout log4j.logger.org.apache.nutch.indexer.CleaningJob=INFO,cmdstdout log4j.logger.org.apache.nutch.crawl.WebTableReader=INFO,cmdstdout log4j.logger.org.apache.nutch.host.HostDbReader=INFO,cmdstdout log4j.logger.org.apache.nutch.parse.ParserChecker=INFO,cmdstdout log4j.logger.org.apache.nutch.indexer.IndexingFiltersChecker=INFO,cmdstdout log4j.logger.org.apache.nutch.plugin.PluginRepository=WARN log4j.logger.org.apache.nutch.api.NutchServer=INFO,cmdstdoutlog4j.logger.org.apache.nutch=INFO log4j.logger.org.apache.hadoop=WARN log4j.logger.org.apache.zookeeper=WARN log4j.logger.org.apache.gora=WARN因此,nutch相關的包大多數日志均被重新指定了指向cmdstdout,而其它日志,如hadoop, zookeeper, gora只是重新定義了日志級別,而未重新定義appender,因此它們日志將被指向DRFA。【可選】指定threshold
# Logging Threshold log4j.threshold=ALL2、指定某個appender的屬性
cmstd:
%m 輸出代碼中指定的信息,如log(message)中的message
%n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n
DRFA:
輸出文件可以用變量指定,如上面的:
log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}總結
以上是生活随笔為你收集整理的log4j配置文件及nutch中的日志配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: slf4j教程
- 下一篇: hadoop集群中的日志文件