(一)简单阐述
简单的说明一下,日志框架log4j、slf4j的关系。slf4j就好比是一个interface接口,它并不具体进行日志的存储。log4j就好像是一个实现类。两者之间通过slf4j-log4j进行搭桥关联。
(二)搭配好处
1):如果项目使用了多套日志框架,在代码层面要关心使用每一个日志框架的构建,如:log4j使用的是Logger.getLogger(LogTest.class); 而Common-logging 使用的是Log logger = LogFactory.getLog(LogTest.class)。这样子开发起来比较烦索。
2):项目期间更换日志框架的话,只要更新配置文件就可以。
3、我的配置:
1):引入jar包
或者使用Maven的dependency
2):在代码层使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
********
Logger logger = LoggerFactory.getLogger(MgisInitListener.class);
3):添加log4j.properties
log4j.rootLogger=INFO,Console,File
log4j.logger.com.mgis.common=DEBUG
log4j.logger.org.springframework=WARNlog4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
log4j.appender.File=org.apache.log4j.RollingFileAppender
************
详细的log4j配置可参考以下网址:
http://www.cnblogs.com/ITtangtang/p/3926665.html
http://www.cnblogs.com/shanheyongmu/p/5650864.html
4):关于日志打印重复的问题修复。
第一种方式:添加log4j.additivity.com.****=false,这样子就不会重复了。
第二种方式:log4j.logger.com.****=,XXX 此时XXX不要使用与父类相同的appender即可。