本文共 2490 字,大约阅读时间需要 8 分钟。
首先,需要在项目的lib
目录下添加log4j-1.2.8.jar
文件。这个JAR文件是Log4j的核心组件,必不可少。
然后,在项目的CLASSPATH
路径下新建一个名为log4j.properties
的文件。文件内容如下:
log4j.rootCategory=INFO, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%m%nlog4j.appender.R=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File=D:\Tomcat 5.5\logs\qc.loglog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d-[TS]%p%t%c-%m%nlog4j.logger.com.neusoft=DEBUGlog4j.logger.com.opensymphony.oscache=ERRORlog4j.logger.net.sf.navigator=ERRORlog4j.logger.org.apache.commons=ERRORlog4j.logger.org.apache.struts=WARNlog4j.logger.org.displaytag=ERRORlog4j.logger.org.springframework=DEBUGlog4j.logger.com.canoo.webtest=WARNlog4j.logger.org.hibernate.ps.PreparedStatementCache=WARNlog4j.logger.org.hibernate=DEBUGlog4j.logger.org.logicalcobwebs=WARN
log4j.rootCategory
指定了根Logger的日志级别和输出目标。INFO
级别的日志信息会被stdout
和R
两个目的地接收。
log4j.appender.stdout
定义了一个名为stdout
的Appender,使用ConsoleAppender
将日志信息输出到控制台。log4j.appender.R
定义了一个名为R
的Appender,使用DailyRollingFileAppender
将日志信息写入文件D:\Tomcat 5.5\logs\qc.log
。log4j.appender.stdout.layout
设置为PatternLayout
,指定了日志信息的格式。log4j.appender.R.layout
同样设置为PatternLayout
,支持自定义日志格式。log4j.appender.stdout.layout.ConversionPattern
定义了日志信息的打印格式,支持使用通用格式化字符串。
log4j.logger.*
用于设置特定包下的Logger级别。例如:
log4j.logger.com.neusoft=DEBUG
设置com.neusoft
包下的Logger级别为DEBUG。log4j.logger.org.apache.commons=ERROR
设置org.apache.commons
包下的Logger级别为ERROR。在需要使用Log4j的类中,导入以下类:
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
在类中定义一个静态私有Logger实例:
private final Log log = LogFactory.getLog(getClass());
在需要输出日志的方法中,使用log
实例调用相应的方法:
if (log.isDebugEnabled()) { log.debug("系统信息:…”);}if (log.isInfoEnabled()) { log.info("信息:…”);}if (log.isWarnEnabled()) { log.warn("警告:…”);}if (log.isErrorEnabled()) { log.error("错误:…”);}if (log.isFatalEnabled()) { log.fatal("严重错误:…”);}
Log4j支持使用类似printf
的格式化字符串:
%m
输出消息内容%p
输出日志级别%r
输出日志记录时间(毫秒)%c
输出所属类%t
输出线程名%d
输出日期和时间%n
输出换行符(支持Windows和Unix)例如:
log.debug("系统信息:%m%n", "系统信息:…”);
log4j.logger.net.sf.navigator=ERROR
和log4j.logger.org.apache.commons=ERROR
可以忽略。log4j.appender.R.File
和log4j.logger.*
的配置。转载地址:http://ldufk.baihongyu.com/