配置log4j
1、log4j的三个组件
a、Logger 日志记录器,负责收集处理日志记录 (如何处理日志)
b、Appender 日志输出目的地,负责日志的输出 (输出到什么 地方)
c、Layout 日志格式化,负责对输出的日志格式化(以什么形式展现)
2、level
OFF 关闭
FATAL 致命的
ERROR 错误
WARN 警告
INFO 信息
DEBUG 调试
ALL 所有
注:如果logger的Level设置为INFO,那么系统只输出INFO以及以上(WARN、ERROR、FATAL)信息
3、Appender
日志输出的目的地,可以是Console(控制台)、file(文件)、JDBC、JMS等
常用的集中Appender有:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个文件)
org.apache.log4j.RollingFileAppender(文件达到某一大小的时候产生一个新文件)
org.apache.log4j.WriteFileAppdender(将日志信息以流形式发送到任意指定的地方)
4、Layout
使用指定的Layout来展示(格式化)日志,常见的Layout有:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息),更多
5、Log4j的配置
第一步:复制log4j-1.2.17.jar至lib下
如项目使用了maven,可配置pom.xml
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
第二步:在项目里的src下新建log4j.propertis(或在web.xml里配置listener)
下面定义日志输出级别是 INFO,并且配置了2个输出目的地,一个是R,一个是Console(输出目的地名称可以任意取) log4j.rootLogger = INFO,R,Console //日志最低的输出级别 log4j.appender.R.Threshold=INFO //每天产生一个文件DailyRollingFileAppender log4j.appender.R = org.apache.log4j.DailyRollingFileAppender //file 属性 指定产生日志文件的保存位置及文件名,这里是windows下的配置 log4j.appender.R.File=D:/log/logtest.log //日期格式化输出文件 log4j.appender.R.DatePattern='_'yyyy-MM-dd //日志布局方式 log4j.appender.R.layout=org.apache.log4j.PatternLayout //日志文件中日志的格式 log4j.appender.R.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} test %-5p [%c] - %m%n //这里使用org.apache.log4j.ConsoleAppender指定要把日志输出到控制台 log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%-d{yyyy/MM/dd HH:mm:ss} test %-5p [%c] - %m%n
log4j.logger.com.neusoft=DEBUG
log4j.logger.com.opensymphony.oscache=ERROR
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=DEBUG
log4j.logger.com.ibatis.db=WARN
log4j.logger.org.apache.velocity=FATAL
layout.ConversionPattern相应参数含义
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
如果项目使用了框架,可以在web.xml利用Spring配置log4j
在web.xml中添加配置 <!-- 配置log4j配置文件的路径,可以是xml或 properties(此参数必须配)--> 下面使用了classpath 参数指定log4j.properties文件的位置,这样log4j的配置文件就不用非要放到src的下面 <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:config/log4j.properties</param-value> </context-param> 使用spring的监听器,当应用启动时来读取log4j的配置文件 <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
第三步:在需要使用日志的类里加
Logger log = Logger.getLogger(Test.class);
..
BasicConfigurator.configure();
在方法里加log.info("info")、log.debug("bug")、log.error("error")、log.warn("warn")等

浙公网安备 33010602011771号