1、环境:Win7,JDK1.6,MyEclipse8.5,Tomcat6
2、准备commons-logging.jar、log4j-1.2.15.jar放在${TOMCAT_HOME}/lib目录下
3、log4j.properties文件的内容:
#log4j configuration
log4j.rootLogger=DEBUG, A1,A2
#log4j output target : file
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=${catalina.base}/logs/my.log
log4j.appender.A1.MaxFileSize=50KB
log4j.appender.A1.MaxBackupIndex=5
#log4j info format
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS} %p %l%m%n
#
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.TTCCLayout
#log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss SSS} %p %l%m%n
其中相关参数的配置:
log4j输出目的地:
org.apache.log4j.ConsoleAppender #(控制台)
org.apache.log4j.FileAppender #(文件)
org.apache.log4j.DailyRollingFileAppender #(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender #(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender #(将日志信息以流格式发送到任意指定的地方)
log4j日志输出信息的格式:
org.apache.log4j.HTMLLayout(HTML表格形式)
org.apache.log4j.SimpleLayout(简单格式的日志,只包括日志级别、指定的日志信息 )
org.apache.log4j.TTCCLayout(日志的格式包括日志产生的时间、线程、类别等等信息)
org.apache.log4j.PatternLayout(灵活地自定义日志格式)
org.apache.log4j.PatternLayout定义日志输出信息格式时,可以使用
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss SSS} %p -%m%n 来格式化信息
%c 输出所属类的全名,
%d 输出日志时间其格式为 可指定格式 如 %d{yyyy-MM-dd HH:mm:ss SSS}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如log.debug(“test”),输出test
%p 输出日志的优先级,即 FATAL ,ERROR ,INFO,DEBUG等
%r 输出从启动到显示该条日志信息所耗费的时间(毫秒数)
%t 输出产生该日志事件的线程名
4、log4j.properties保存在LogBase类同个包下,LogBase加载log4j.properties文件:
InputStream inStream = LogBase.class.getResourceAsStream("log4j.properties");
Properties properties = new Properties();
properties.load(inStream);
PropertyConfigurator.configure(properties);
5、使用Log4j输出日志信息:
LogFactory.getLog(LogBase.class).info("test");
//在tomcat的logs下看到my.log文件,并有相关的日志信息。