您的位置:首页 > 其它

Log4j常用的配置说明

2013-08-23 13:54 246 查看
出自Icafe8Wiki

Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties。

下面将介绍使用log4j.properties文件作为配置文件的方法,以isp平台log4j.properties为例:

log4j.rootLogger=ERROR,errorfilelog4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.errorfile.File=c\:/isplog/error.loglog4j.appender.errorfile.MaxBackupIndex=365 log4j.appender.errorfile.Threshold=ERRORlog4j.appender.errorfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.errorfile.layout.ConversionPattern=%d %p %m%rnlog4j.appender.filterLog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.filterLog.File=c\:/isplog/filterLog.loglog4j.appender.filterLog.MaxBackupIndex=365log4j.appender.filterLog.layout=org.apache.log4j.PatternLayoutlog4j.appender.filterLog.layout.ConversionPattern=%d %p %m%rnlog4j.appender.eventProcessLog=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.eventProcessLog.File=c\:/isplog/eventProcessLog.loglog4j.appender.eventProcessLog.layout=org.apache.log4j.PatternLayoutlog4j.appender.eventProcessLog.layout.ConversionPattern=%d %p %m%rnlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%rnlog4j.logger.com.shunwang=ERRORlog4j.logger.com.shunwang.common.filter.SWContextfilter=INFO,filterLoglog4j.logger.com.shunwang.isp.schedul.EventProcessThread=INFO,eventProcessLog

整理了一下,配置大致可以分为三部分:
1、配置根Logger

Logger 负责处理日志记录的大部分操作。

其语法为:

log4j.rootLogger = [ level ] , appenderName, appenderName, …

如:log4j.rootLogger=ERROR,errorfile(把ERROR以上等级日志信息输出到errorfile)。

其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,只有等于及高于这个级别的才进行处理,则应用程序中所有DEBUG级别的日志信息将不被打印出来。ALL:打印所有的日志,OFF:关闭所有的日志输出。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。 编辑] 2、配置日志信息输出目的地 Appender

Appender 负责控制日志记录操作的输出。

其语法为:

log4j.appender.appenderName = fully.qualified.name.of.appender.classlog4j.appender.appenderName.option1 = value1…log4j.appender.appenderName.optionN = valueN

这里的appenderName可任意起名。

例子中配置了4个输出源,appenderName分别为:errorfile,filterLog,eventProcessLog,stdout。

以errorfile为例:

(1)log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender 定义名为errorfile的输出端是哪种类型,这里定义的是每天产生一个日志文件。

Log4j提供的输出端有以下几种: org.apache.log4j.ConsoleAppender(控制台), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过log4j.appender.R.MaxFileSize=100KB设置文件大小,还可通过 log4j.appender.appenderName.MaxBackupIndex=1设置为保存一个备份文件。 org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   ①.ConsoleAppender选项     Threshold=WARN:指定日志消息的输出最低层次。     ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。     Target=System.err:默认情况下是:System.out,指定输出控制台   ②.FileAppender 选项     Threshold=WARN:指定日志消息的输出最低层次。     ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。     File=mylog.txt:指定消息输出到mylog.txt文件。     Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。   ③.DailyRollingFileAppender 选项     Threshold=WARN:指定日志消息的输出最低层次。     ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。     File=mylog.txt:指定消息输出到mylog.txt文件。     Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。     DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:       1)'.'yyyy-MM: 每月       2)'.'yyyy-ww: 每周       3)'.'yyyy-MM-dd: 每天       4)'.'yyyy-MM-dd-a: 每天两次       5)'.'yyyy-MM-dd-HH: 每小时       6)'.'yyyy-MM-dd-HH-mm: 每分钟   ④.RollingFileAppender 选项     Threshold=WARN:指定日志消息的输出最低层次。     ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。     File=mylog.txt:指定消息输出到mylog.txt文件。     Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。     MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。     MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

(2)log4j.appender.errorfile.File=c\:/isplog/error.log 指定输出端路径;

(3)log4j.appender.errorfile.MaxBackupIndex=365 指定可以产生的滚动文件的最大数为365;

(4)log4j.appender.errorfile.Threshold=ERROR 指定日志消息的输出最低层次;

(5)log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout Layout 负责格式化Appender的输出,这里指定errorfile输出端的layout为可以灵活地指定布局模式。

Log4j提供的layout有以下几种: org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以灵活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串), org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)。  ①.HTMLLayout 选项   LocationInfo=true:默认值是false,输出java文件名称和行号   Title=my app file: 默认值是 Log4J Log Messages.  ②.PatternLayout 选项   ConversionPattern=%m%n :指定怎样格式化指定的消息。

(6)log4j.appender.errorfile.layout.ConversionPattern=%d %p %m%rn 格式化errorfile输出端的日志信息。

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:  %m 输出代码中指定的消息  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL  %r 输出自应用启动到输出该log信息耗费的毫秒数  %c 输出所属的类目,通常就是所在类的全名  %t 输出产生该日志事件的线程名  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。 3.定义域的级别

log4j.logger.com.shunwang=ERROR 把这个包下出现的错误的等级设为ERROR; log4j.logger.com.shunwang.common.filter.SWContextfilter=INFO,filterLog 把com.shunwang.common.filter.SWContextfilter这个类的等级设为INFO,输出源为filterLog。

介绍几个常用的框架域的设置,这些包的设置可根据项目的实际情况而自行定制:

log4j.logger.org.apache.commons=ERROR log4j.logger.org.apache.struts=WARN 这两句是struts的包。 log4j.logger.org.springframework=DEBUG 此句为Spring的包。 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN log4j.logger.org.hibernate=DEBUG 这两句是hibernate的包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: