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

使用slf4j作为日志系统时,由于slf4j只是一个接口,它需要一个具体实现来执行。

具体参考

由于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=ALLIn 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 备份文件个数,,例如,14、log4j.appender.ServerDailyRollingFile.DatePattern=日志后缀格式 例如,’.’yyyy-MM-dd5、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 输出产生该日志事件的线程名 可参考:7、log4j.appender.ServerDailyRollingFile.Append=true

在后面追加

三、示例:Nutch中的log4j.properties

# Define some default values that can be overridden by system propertieshadoop.log.dir=.hadoop.log.file=hadoop.log# RootLogger – DailyRollingFileAppenderlog4j.rootLogger=INFO,DRFA# Logging Thresholdlog4j.threshold=ALL#special logging requirements for some commandline toolslog4j.logger.org.apache.nutch.crawl.Crawl=INFO,cmdstdoutlog4j.logger.org.apache.nutch.crawl.InjectorJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.host.HostInjectorJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.crawl.GeneratorJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.crawl.DbUpdaterJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.host.HostDbUpdateJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.fetcher.FetcherJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.parse.ParserJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.indexer.IndexingJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.indexer.DeleteDuplicates=INFO,cmdstdoutlog4j.logger.org.apache.nutch.indexer.CleaningJob=INFO,cmdstdoutlog4j.logger.org.apache.nutch.crawl.WebTableReader=INFO,cmdstdoutlog4j.logger.org.apache.nutch.host.HostDbReader=INFO,cmdstdoutlog4j.logger.org.apache.nutch.parse.ParserChecker=INFO,cmdstdoutlog4j.logger.org.apache.nutch.indexer.IndexingFiltersChecker=INFO,cmdstdoutlog4j.logger.org.apache.nutch.plugin.PluginRepository=WARNlog4j.logger.org.apache.nutch.api.NutchServer=INFO,cmdstdoutlog4j.logger.org.apache.nutch=INFOlog4j.logger.org.apache.hadoop=WARNlog4j.logger.org.apache.zookeeper=WARNlog4j.logger.org.apache.gora=WARN## Daily Rolling File Appender#log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.log.file}# Rollver at midnightlog4j.appender.DRFA.DatePattern=.yyyy-MM-dd# 30-day backup#log4j.appender.DRFA.MaxBackupIndex=30log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout# Pattern format: Date LogLevel LoggerName LogMessagelog4j.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.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.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.ConsoleAppenderlog4j.appender.cmdstdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.cmdstdout.layout.ConversionPattern=%m%n

基本步骤如下:

1、指定log4j.rootLogger

log4j.rootLogger=INFO,DRFA一切伟大的行动和思想,都有一个微不足道的开始

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

相关文章:

你感兴趣的文章:

标签云: