代码的日志输出,前前后后折腾了我好几次。
本着会用,快速配置的原则,还是将配置过程记录下来,以便复用。
参考:http://blog.****.net/anialy/article/details/8529188
1. 据说slf4j的效率比log4j的效率高,所以大体上采用slf4j来记录日志。
2. slf4j提供了一套api而log4j是具体的实现,所以想使用slf4j则需要具体实现slf4j的api。
所以,log4j实现 + slf4j api ==> slf4j实现, 此过程采用了适配器模式。
3. 具体配置过程:
1) 添加maven依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
会添加如下依赖:
slf4j-api, log4j, slf4j-log4j ==> 验证第2点。
2) classpath下添加log4j.properties
log4j.properties:
#config root logger
log4j.rootLogger = INFO,system.out
log4j.appender.system.out=org.apache.log4j.ConsoleAppender
log4j.appender.system.out.layout=org.apache.log4j.PatternLayout
log4j.appender.system.out.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n #config this Project.file logger
log4j.logger.thisProject.file=INFO,thisProject.file.out
log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender
log4j.appender.thisProject.file.out.File=logContentFile.log
log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout
3) 代码中设置Logger
private static final Logger logger = LoggerFactory.getLogger(clazz);
Done!