概述
最近在做一个老项目维护时,需要对功能输出日志,新的规范要求使用slf4j.Logger和slf4j.LoggerFactory实现日志输出。将代码改造为slf4j后进行日志输出失败,未输出日志。
调整前代码如下:
private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(XXX.class);
logger.info(“info日志”);
logger.error(“error日志”);
此时日志可以正常输入的。
此时引入log4j-1.2.15.jar
调整后代码
private static final org.slf4j.Logger.Logger logger = org.slf4j.LoggerFactory.getLogger(CCBPayOrderController.class);
logger.info(“info日志”);
logger.error(“error日志”);
此时日志不输出,代码运行正常未提出错误信息。
此时引入的jar包:log4j-1.2.15.jar、slf4j-api-1.6.1.jar
原因:
还需要引入slf4j和log4j的桥接jar包才能正常输出日志。导入桥接包slf4j-log4j12-1.6.1.jar。(桥接包下载地址:http://www.java2s.com/Code/Jar/s/Downloadslf4jlog4j12161jar.htm#google_vignette)
重启程序,此时日志正常输出。
配置文件如下(引入slf4j前后未做调整):
## DEBUG, CONSOLE,E, R随便定义的
log4j.rootCategory=DEBUG, CONSOLE,E, R
# 控制台输出控制
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %m%n
#常规日志输出:按日期进行日志文件管理,便于调试,需收工清理日志文件
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=../logs/info.log
log4j.appender.R.Append=true
log4j.appender.R.DatePattern = '.'yyyy-MM-dd-HH
log4j.appender.R.Threshold=INFO
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}
[%t] - [%p]
%m%n
# 错误日志记录输出: 按文件大小进行日志文件管理
# Threshold使用WARN,如果用ERROR,则只有错误信息,没有相关异常内容
log4j.appender.E=org.apache.log4j.RollingFileAppender
log4j.appender.E.File=../logs/error.log
log4j.appender.E.DatePattern=-'yyyy-MM-dd-HH-mm'.log
log4j.appender.E.MaxFileSize=10240KB
log4j.appender.E.MaxBackupIndex=10
log4j.appender.E.Append=true
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}
[%t] - [%p]
%m%n
最后
以上就是傻傻柜子为你收集整理的Slf4j与log4j结合使用问题的全部内容,希望文章能够帮你解决Slf4j与log4j结合使用问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复