log4j:WARN No appenders could be found for logger 正解
log4j:WARN No appenders could be found for logger正解
注:log4j有两种配置方式,一种是prop,还有一种为XML,这两种文件都放到SRC下,编译后的位置在classes
正解:
1. web.xml中确保加载spring的上下文之前加载log4j
2. 确保整个web工程只有一个log4j包被引用.有些时候一个工程无意中会导入多个含有log4j的jar,原因很简单,就是因为log4j太受欢迎.
针对第二个问题,你可以使用jar搜索插件对指定的jar们进行搜索,搜索内容为log4j或控制台输出的未加载log4j警告片段.
3. 确保工程中TOMCAT配置的server.xml只含有单个项目,因为有多个项目时,其他项目可能会出现没有加载log4j的情况,本人因为这个找了很久....,在调试中发现,初始化完spring的Context后发现进入了StandardContext类的start方法后就开始运行那句厌人的话,百思不得其解,后来解决了问题,还是发现我们需要冷静,细心,认真思考方能解决问题.
4. 通过查看log4j的源包时,你可以用控制台输出的未加载log4j警告片段搜索到指定位置。你可以修改一下源包再打包。我在项目中也是用的自己的包
,在配置log4j的指定路径时log4j没有把理想的路径写好,往往,启动了了项目后,进行了记录日志操作,会把一个叫做WEB-INF的文件夹直接写在了工作磁盘根目录下
这时,你需要搞清楚log4j的文件夹输出机制,其实很简单,就是FileAppender的setFile方法做的怪.你需要写一个自己的路径。
5. 其实网上说的利用log4j.properties放到SRC下也可以,但是个人认为这个properties还是换成XML吧,可读好,改动更方便,当然要用properties也是可以的.
最后留下我的联系方式:欢迎交流,QQ:494174519,Q群:136507143 http://www.youmacode.com/(场景应用和插件网)谢谢参观