1、WARN Please initialize the log4j system properly
解法:只要在 src文件目录下建立配置文件log4j.properties即可
2、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
解法:这是因为sl4j和log4j的不兼容导致的,具体处理方案如下:
首先看看你工程中的sl4j-api的版本(比如我的是1.7.21),然后在http://mvnrepository.com/仓库搜索slf4j-log4j12,会出现SLF4J LOG4J 12 Binding,点击进入,找到1.7.21版本的slf4j-log4j12进入详细信息页面,查看依赖的log4j,这个版本的slf4j-log4j12依赖的是1.2.71版本的log4j。
然后,我们在我们的工程中添加1.7.21版本的slf4j-log4j12和1.2.14版本的log4j即可
3、WARN No appenders could be found for logger (org.apache.shiro.io.ResourceUtils).
解法:只要在 src文件目录下建立配置文件log4j.properties即可
4、Log4j.properties配置详解
参见:https://www.jianshu.com/p/ccafda45bcea(感谢)
5、输出独立日志文件
log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能
常见log4j.properties的配置:
log4j.rootLogger=DEBUG, stdout, logfilelog4j.category.org.springframework=ERROR
log4j.category.org.apache=INFOlog4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${myweb.root}/WEB-INF/log/myweb.log
log4j.appender.logfile.MaxFileSize=512KB
log4j.appender.logfile.MaxBackupIndex=5
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
不同类输出不同文件
如果想对不同的类输出不同的文件(以cn.com.Test为例),先要在Test.java中定义:
private static Log logger = LogFactory.getLog(Test.class);
然后在log4j.properties中加入:
log4j.logger.cn.com.Test= DEBUG, test
log4j.appender.test=org.apache.log4j.FileAppender
log4j.appender.test.File=${myweb.root}/WEB-INF/log/test.log
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%d %p [%c] - %m%n
从而让cn.com.Test中的logger使用log4j.appender.test所做的配置。