首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

log4j 配备

2012-06-29 
log4j 配置log4j 主要的配置项??1、log4j.rootLogger定义全局性的根日志,即所有的类,所有的方法都会输出到

log4j 配置

log4j 主要的配置项

?

?

1、log4j.rootLogger

定义全局性的根日志,即所有的类,所有的方法都会输出到该日志。

log4j.rootLogger=INFO,stdout,fileout

INFO 表示级别(不区分大小写),可以为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。

优先级 FATAL>ERROR>WARN>INFO>DEBUG

如类别为INFO,DEBUG将被屏蔽,WARN及更高级别会输出。

stdout,fileout 就是指定日志信息输出到哪个地方。您可以同时指定多个输出端。

?

?

?

2、log4j.appender.stdout

对上面stdout输出端的类型定义,如:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

输出类型可以是:

org.apache.log4j.ConsoleAppender(控制台)?

org.apache.log4j.FileAppender(文件)

org.apache.log4j.net.SMTPAppender(指定输出到邮件)?

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.jdbc.JDBCAppender(指定输出到数据库)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

?

?

?

3、log4j.appender.fileout.File

如果上面指定输出端的类型为:

log4j.appender.fileout=org.apache.log4j.FileAppender

那么这里就需要指定输出的文件路径:

log4j.appender.fileout.File=D:\\Tomcat 5.5\\logs\\qc.log

?

?

?

4、log4j.appender.stdout.layout

对上面stdout输出的布局定义,如:

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

输出布局可以是:

org.apache.log4j.HTMLLayout(HTML表格形式布局) ?

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)?

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

org.apache.log4j.PatternLayout(自定义布局)

?

?

?

5、log4j.appender.stdout.layout.ConversionPattern

如果上面使用的是PatternLayout(自定义布局),这里就要指定具体的输出格式,如:

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}?%p [%t] %C.%M(%L) | %m%n

%百分号为转义符,其后面更一个指定的字符表示特殊含义,其他字符都原样输出。

%m ? ? 日志信息,即代码里给日志指定的消息。

%c ? ? ?产生日志的类名,即某个类里的某个方法里产生了日志。

%t ? ? ?产生日志的线程名称。如:主线程main

%M ? ? 产生日志的方法名,注意:该日志会影响程序速度,应避免使用。

%C ? ? 产生日志的全类名,注意:该日志会影响程序速度,应避免使用。

%F ? ? ?产生日志的文件名,注意:该日志会影响程序速度,应避免使用。

%L ? ? ?产生日志的行数字,注意:该日志会影响程序速度,应避免使用。

%d ? ? 产生日志的时间,可以指定格式,默认格式 %d == %d{yyyy-MM-dd HH:mm:ss}

%n ? ? ?表示换行符,依赖于平台的行分隔符。

%p ? ? ?日志的优先级,即代表字符串:"DEBUG","INFO","WARN","ERROR"等

%r ? ? ?日志构建的毫秒数,

%x ? ? ?输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%% ? ?表示一个百分号

限定最小宽度、最大宽度、文本的对齐方式,比如要对%c进行限定:

%20c ? ?最小的宽度是20,默认右对齐

%.20c ? 最大的宽度是20,默认右对齐,左边多出的字符截掉。

%-20c ? 最小的宽度是20,指定左对齐。

?

?

?

6、log4j.logger

定义子日志,可以给指定的包下面定义独立的日志,如:

log4j.logger.com.lwt=INFO,testout

指定com.lwt包下的所有类的等级为INFO。输出端为testout

还可以给struts2、ehcache等定义日志,如:

log4j.logger.com.opensymphony.oscache=ERROR

log4j.logger.net.sf.navigator=ERROR

log4j.logger.org.apache.commons=ERROR

log4j.logger.org.apache.struts=WARN

?

?

?

7、log4j.additivity

如有:

log4j.rootLogger=INFO,stdout,fileout

log4j.logger.com.lwt=INFO,testout?

默认com.lwt包下的输出不仅是testout,还会输出到rootLogger里的stdout,fileout?

若想让取消子日志对父日志(rootLogger)的继承关系,则添加下行即可:?

log4j.additivity.com.lwt=false

?

?

2 楼 tianhandigeng 2012-05-21   嗯,不错,这个博客是我看到的最清晰的一个关于log4j各项配置的介绍,非常不错

热点排行