日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

log4j配置文件及nutch中的日志配置

發布時間:2024/1/23 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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(將日志信息保存到數據庫中)
示例中使用的是DailyRollingFileAppender。下一部分會詳細介紹每個appender中的具體屬性。


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


# Define some default values that can be overridden by system properties hadoop.log.dir=. hadoop.log.file=hadoop.log# RootLogger - DailyRollingFileAppender log4j.rootLogger=INFO,DRFA# Logging Threshold log4j.threshold=ALL#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# # Daily Rolling File Appender #log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}# Rollver at midnight log4j.appender.DRFA.DatePattern=.yyyy-MM-dd# 30-day backup #log4j.appender.DRFA.MaxBackupIndex=30 log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout# Pattern format: Date LogLevel LoggerName LogMessage log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n # Debugging Pattern format: Date LogLevel LoggerName (FileName:MethodName:LineNo) LogMessage #log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n# # stdout # Add *stdout* to rootlogger above if you want to use this #log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n# # plain layout used for commandline tools to output to console # log4j.appender.cmdstdout=org.apache.log4j.ConsoleAppender log4j.appender.cmdstdout.layout=org.apache.log4j.PatternLayout log4j.appender.cmdstdout.layout.ConversionPattern=%m%n


基本步驟如下:

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=ALL

2、指定某個appender的屬性

cmstd:

# # plain layout used for commandline tools to output to console # log4j.appender.cmdstdout=org.apache.log4j.ConsoleAppender log4j.appender.cmdstdout.layout=org.apache.log4j.PatternLayout log4j.appender.cmdstdout.layout.ConversionPattern=%m%n

%m 輸出代碼中指定的信息,如log(message)中的message
%n 輸出一個回車換行符,Windows平臺為“rn”,Unix平臺為“n

DRFA:

# # Daily Rolling File Appender #log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}# Rollver at midnight log4j.appender.DRFA.DatePattern=.yyyy-MM-dd# 30-day backup #log4j.appender.DRFA.MaxBackupIndex=30 log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout# Pattern format: Date LogLevel LoggerName LogMessage log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n # Debugging Pattern format: Date LogLevel LoggerName (FileName:MethodName:LineNo) LogMessage #log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n

輸出文件可以用變量指定,如上面的:

log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}

總結

以上是生活随笔為你收集整理的log4j配置文件及nutch中的日志配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。