Log4j 的配置和在 Spring 中的使用

来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:14:58

Log4j作为一个强大的日志包,是非常有必要学会使用的,其实也不难

它有xml配置,与properties配置两种,我喜欢properties这种,很明了

一个简单的配置如下:

log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=D-D %d{ABSOLUTE} %30.30c %5.5p %m%n

log4j.logger.org.directwebremoting.log.startup=INFO  //关注部分,也就什么需要日志记录

 

Log4j有3个东西:

1)logger 就是:什么是你关心的,需要记录日志的

2)appender 输出的方式:控制台?文件?

3)layout 输出的样式: 日志记录的格式

 

看上的第一句:

log4j.rootLogger=INFO, stdout

是跟logger ,它的记录等级为INFO,名字叫 stdout (默认解释为标准输出,随便取名字的)

日志等级有5种:

DEBUG、INFO、WARN、ERROR、FATAL(这个是由轻到重排列)

日志等级为INFO意思是,大于等于INFO等级的才进行记录!(也就是DEBUG等级的忽略)

 

往下看是:log4j.appender.stdout=org.apache.log4j.ConsoleAppender

也就是appender,控制记录日志的方式,以下几种:

  org.apache.log4j.ConsoleAppender(控制台)
  org.apache.log4j.FileAppender(文件)
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

(看仔细点,可以看到appender.stdout=xxx ,也就是说,log4j可以定义多个logger,用不同的方式记录)

 

再下来就是 layout部分:

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=D-D %d{ABSOLUTE} %30.30c %5.5p %m%n

这个是输出的格式,这个内容比较多,篇幅问题,在这里就不说了,有兴趣的自己

一搜,肯定有

 

最下面是,logger的内容

也就是指定什么是你关系的部分,需要做日志的部分

log4j.logger.org.directwebremoting.log.startup=INFO  这个是只想买启动的时候做启动日志

日志等级为INFO(也就是DEBUG等级就不录)

 

Log4j常常在Spring中使用

用法:

在web.xml加入


  log4jConfigLocation
  \WEB-INF\classes\log4j.properties  //配置log4j路径
 

 
   // 使用了spring的 listener 在项目启动的时候,启动log4j
  org.springframework.web.util.Log4jConfigListener 
 

 

然后在log4j.properties中加入最上面的配置,就可以使用了

如果你关心Hibernate信息,想为它做日志的话,可以加入:

log4j.logger.org.hibernate=DEBUG
log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN

关心spring的话:

log4j.logger.org.springframework=WARN

 

等等,也可以把你的项目也写上去(包名,会自动囊或子包)

 

写给一直进步的人