日志是记录运行状态的重要监控工具,这次我们介绍使用强大的log4j。首先引入log4j的jar。我们可以设置不同的级别,分别有FATAL,ERROR,INFO,DEBUG,ALL级别,可以根据需要选择。也可以把打印内容输出到对应的文件,或则是输出到不同的文件,common-log是一系列接口,具体实现类由log4j实现,Web加载log4j的配置文件默认名字为:log4j.properties,可以在web.xml配置监听:
<!-- Log4j配置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 加载log4j配置文件 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
注意这个最好放在xml文件的最前面,因为需要初始化参数可以打印spring启动前期的日志,前面部分的日志内容看不到。
log4j.properties基础配置如下:
###配置全局打印级别###
log4j.rootCategory=INFO, stdout
log4j.rootLogger=DEBUG, stdout
### 输出位置 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p - %m%n
### 这里设置不同的包名打印的级别 ###
log4j.logger.org.springframework=DEBUG, stdout, spring
log4j.logger.org.apache.catalina=INFO
log4j.logger.org.apache.commons.digester.Digester=INFO
log4j.logger.org.apache.catalina.startup.TldConfig=INFO
log4j.logger.chb.test=DEBUG
如果是要打印到对应的文件:
log4j.rootLogger=DEBUG, stdout, FILE //启动一个别名FILE
### 输出文件配置 ###
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.Append=true
log4j.appender.FILE.File=./logs/log4jtest.log
log4j.appender.FILE.Threshold=INFO
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.FILE.MaxFileSize=10MB
private static Logger log1 = Logger.getLogger(BaseController.class);
//打印出的结果在对应文件下为
2016-06-28 10:10:21 [ INFO] - com.songtaste.base.BaseController -BaseController.java(13) -this is test
我们还可以自己定义不同的logger,然后去打印不同的业务逻辑:
### spring为logger的名字 ###
log4j.logger.spring=INFO,s
log4j.appender.s=org.apache.log4j.RollingFileAppender
log4j.appender.s.Append=true
log4j.appender.s.File=./logs/spring.log
log4j.appender.s.Threshold=INFO
log4j.appender.s.layout=org.apache.log4j.PatternLayout
log4j.appender.s.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.s.MaxFileSize=10MB
private static Logger log2 = Logger.getLogger("spring");
// 打印到对应的文件为
2016-06-28 10:36:32 [ INFO] - spring -BaseController.java(17) -log2 ...info ...