您的位置:首页 > 运维架构

对log4j.properties的一点介绍

2008-06-24 11:43 141 查看
除去以#开头的注释以及空行,第一行有用的内容是:

1

log4j.rootLogger = DEBUG, CONSOLE,A1
log4j.rootLogger是最最重要的一个属性了,它定义日志信息的“输出级别”和“输出目的地”。
关键看“=”后面的值,“DEBUG, CONSOLE,A1”这里我们要把它分成两部分:第一个逗号之前的是第一部分,指定“输出级别”;后面的是第二部分,指定“输出目的地”。可以同时指定多个“输出目的地”,以逗号隔开。

具体到上面这一行:它指定的“输出级别”是“DEBUG”;它指定的“输出目的地”是“CONSOLE”和“A1”。

注意:

“输出级别”有可选的五个值,分别是DEBUG、INFO、WARN、ERROR、FATAL,它们是由Log4j系统定义的。

“输出目的地”就是我们自己定义的了,就在log4j.properties的后面部分,此文件定义的“输出目的地”有CONSOLE、FILE、ROLLING_FILE、SOCKET、LF5_APPENDER、MAIL、DATABASE、A1、im。该文件之所以可作主模板,就是因为它比较全面地定义了各种常见的输出目的地(控制台、文件、电子邮件、数据库等)。

下面详细解释“log4j.rootLogger=DEBUG, CONSOLE,A1”这一行:

指定“输出级别”是“DEBUG”,即,仅输出级别大于等于“调试(DEBUG)”的日志信息。如果此处指定的是“WARN”则仅调用warn()、error()、fatal()方法输出的日志信息才被输出到“输出目的地”,而调用debug()、info()方法输出的日志信息不被输出到“输出目的地”。明白了吗?Log4j就是以这种方式来过滤控制日志信息的输出与否,这也是对日志信息进行级别分类的目的。
指定“输出目的地”是“CONSOLE”和“A1”,即,将指定的日志信息(根据日志级别已进行了过滤)同时输出到的“控制台”和“SampleMessages.log4j文件”。

为什么说“CONSOLE”表示将日志信息输出到“控制台”呢?那就要看一下后文的定义了:

# 应用于控制台

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=debug
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=--%-4r %-5p [%t] %37c %3x - %m%n
为什么说“A1”表示将日志信息输出到“SampleMessages.log4j文件”呢?还要看后文的定义:

log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=ahoo_web.log
log4j.appender.A1.MaxFileSize=3000KB
log4j.appender.A1.MaxBackupIndex=10
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
注意:这里的定义没有指定输出文件的路径,它的路径实际上是 java.user.path的值。
您应该已经注意到,在定义“输出目的地”时,还可以指定日志格式、时间、布局等相关信息。略过。

另外,我可以根据需要,将这一行修改为:

1

log4j.rootLogger = ERROR, CONSOLE,FILE,MAIL
将“错误(ERROR)”及“致命错误(FATAL)”级别的日志信息同时输出到控制台、文件,并且发电子邮件向系统管理员报告。是不是很爽?(如果将“调试(DEBUG)”级别的日志信息邮件给管理员,恐怕迟早会把他/她的邮箱涨爆,哪怕用的是Gmail!再次理解了“将日志信息分为不同级别”的意图了吧?)

3、目前在使用的一个“应用于输出到文件”的log4j.properties设置


log4j.appender.A1=org.apache.log4j.RollingFileAppender


log4j.appender.A1.File=../workspace/Test_1_Struts_Spring_Hibernate/log/web_ahoo.log


log4j.appender.A1.DatePattern='.'yyyy-MM-dd-HH


log4j.appender.A1.MaxFileSize=2000KB


log4j.appender.A1.MaxBackupIndex=20


log4j.appender.A1.layout=org.apache.log4j.PatternLayout


log4j.appender.A1.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd-HH:mm:ss} [%c]- %m%n
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: