一、在lib下导入commons-logging-1.0.4.jar和log4j-1.2.14.jar两个包
二、在src中package下新建log4j.properties
【配置文件】
#log4j.rootCategory=INFO,stdout,file
#配置根Logger
log4j.rootLogger=INFO,stdout,file
#配置日志信息输出目的地Appender
#定义一个名为 stdout 的输出目的地, ConsoleAppender 为控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#日志输出格式Layout
#PatternLayout 可以灵活地指定布局模式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC]%p[%t]%C.%M(%L)|%m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
#日志文件的输出路径
log4j.appender.file.File=E\:/logs/rizhi.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#log4j.appender.file.layout.ConversionPattern=%d-[TS]%p%t%c-%m%n
log4j.logger.com.neusoft=DEBUG
#如果项目中没有配置EHCache(缓存),则配置以下两句为ERROR
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
#struts配置
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN
#displaytag 配置
log4j.logger.org.displaytag=ERROR
#spring配置
log4j.logger.org.springframework=DEBUG
#ibatis配置
log4j.logger.com.ibatis.db=WARN
#hibernate配置
log4j.logger.org.hibernate=DEBUG
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
log4j.logger.org.logicalcobwebs=WARN
log4j.logger.org.apache.velocity=FATAL
log4j.logger.com.canoo.webtest=WARN
说明:
1、log4j.rootLogger与log4j.rootCategory区别:
rootLogger是新的使用名称,对应Logger类;而rootCategory是旧的使用名称,对应原来的Category类。
Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用
2、log4j 的配置文件
Log4j 支持两种配置文件格式,一种是 XML 格式的文件,一种是 Java 特性文件 lg4j.properties (键 = 值)。
lg4j.properties 文件作为作为常用的配置文件的方法如下:
2.1、配置根 Logger
其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中【level】是日志记录的优先级,共有5级:
OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 ALL 或者自定义的级别
Log4j 建议只使用四个级别,优先级从高到低分别:
ERROR 、 WARN 、 INFO 、 DEBUG
只有等于及高于这个级别的才进行处理,则应用程序中所有 DEBUG 级别的日志信息将不被打印出来。 ALL: 打印所有的日志, OFF :关闭所有的日志输出。 appenderName 就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。
2、2 配置日志信息输出目的地 Appender 负责控制日志记录操作的输出。
其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
log4j.appender.appenderName.optionN = valueN
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),可通过 log4j.appender.R.MaxFileSize=100KB 设置文件大小,还可通过 log4j.appender.R.MaxBackupIndex=1 设置为保存一个备份文件。
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
2、3 Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
2、4 格式化日志信息
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 2 8 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
三、src下package中新建LogTest.java
【代码】
package test;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* 测试Log4j
*@author 郑学仕
*@version 2013-12-16
*/
public class LogTest {
private static final Log LOG = LogFactory.getLog(LogTest.class);
public void log(){
LOG.debug("Debug info...");
LOG.info("Info info...");
LOG.warn("Warn info...");
LOG.error("Error info...");
LOG.fatal("Fatal info...");
}
public static void main(String[] args) {
LogTest test = new LogTest();
test.log();
}
}