log4j:WARN No appenders could be found for logger

log4j:WARN No appenders could be found for logger
2009 - 06-05

 

log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Embedded).

log4j:WARN Please initialize the log4j system properly.

 

启动tomcat发现日志中有红色的警告信息,以前没有看到过这种警告,在重启tomcat之前我做了一个事情:把一个lcds项目需要的jar包中lib目录下的jar文件全部拷贝到了tomcat -common-lib下面。在网上查找解决方案时找到的说法很多,最终是确定property文件没问题,删除common-lib下面的log4j.jar。

 

 

网上找到的两段话帮助我解决这个问题:

1.log4j:WARN No appenders could be found for logger log4j:WARN Please initialize the log4j system properly. “正常”配置log4j后,启动Tomcat,报告上述错误。看到这段信息给我的感觉是,在log4j.properties属性文件中,没有找到与指定logger对应的appender,让我初始化log4j。可是我已经在环境变量里指定属性文件log4j.properties了,每次运行启动Tomcat还是报告上述信息。虽然是WARN信息,而且日志还是可以正常输出,但是,心理还是别扭,肯定是在配置环境的时候哪里出现了问题。一般情况下,程序报告错误信息,我都认为是人的问题,不是计算机的问题。于是我开始了艰苦卓绝地查找错误的旅程。上网搜索一下相关的错误信息,发现有很多类似的帖子,虽然错误信息稍有所差别,但是共同的是都有上面警告信息。里面所写的相关的解决方法,也都不是很有效。这个问题折磨了我好久,郁闷!无意中看到这么一句话,“一个干净的运行环境对程序来说,是非常重要的。”顿时我有一种醍醐灌顶的感觉,帅!可能是我放jar包的位置不对。但是,该放的地方都放了。问题就在这儿了,就是有可能不该放的地方也放了。这是一个在程序员工作中经常出现的问题,在运行过很多的程序的环境下,其中的jar包可能到处都是,如果没有及时的进行清理工作,将会对后面开发的程序不一定什么时候,产生意想不到的影响。回到正题,现在我想到的问题是有可能在程序还没有读取到我指定的log4j.properties属性文件时,就已经开始运行与log4j相关的log4j-1.2.8.jar文件了,所以才会出现报告没有初始化的警告信息。那么究竟是在哪里提前执行了log4j-1.2.8.jar文件了呢?引起我最大怀疑的就是C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27/common/lib下的这个jar文件。事实也确实是这样,当我将这个jar文件删除掉的时候,从新运行启动Tomcat后,这个信息就再也没有出现。现在回头来想一下,为什么会出现这种情况呢?我自己分析有可能是因为以下的原因。由于是在JBuilder中集成的第三方软件,当启动JBuilder中的Tomcat时,首先他会自动查找工程中用到的自身文件夹下的common/lib下的jar文件,如果找到的话,就进行加载,然后才查找conf/下的log4j.properties等相关的配置文件,正是因为这样,才会报告没有初始化的信息。如果在common/lib下没有找到工程中要用到的jar文件,就先配置conf/下的配置文件,然后到工程中自身包含的lib下查找所用到的jar文件,这时就先把log4j的初始化工作作完了,所以这时在启动Tomcat时就不再提示没有初始化的警告信息了。总结:在配置各种运行环境的时候,不要认为将要用到的jar文件拷贝到所有的相关的lib文件夹下,就会省很多事,想当然地认为用到时会自动调用,但是当相关配置有先后顺序的时候,会带来很多不必要的麻烦以及意想不到的问题。所以要充分地了解jar文件的用途以及他应该在的位置。提示:在环境变量中可以设置以下两个变量 CATALINA_OPTS -Dlog4j.configuration=file:/C:/Borland/JBuilder2005/thirdparty/jakarta-tomcat-5.0.27/conf/log4j.properties CLASSPATH C:/Borland/JBuilder2005/lib/log4j-1.2.8.jar; 但是我运行成功后,我将这两个变量分别删掉后,程序运行仍然正常。如果你的程序运行时出现了某些问题,建议还是将这两个环境变量加上。

2. 在Eclipse中开发相关项目时,在控制台经常看到如下信息:

log4j:WARN No appenders could be found for logger 
log4j:WARN Please initialize the log4j system properly.
 
        此处输出信息并不是错误信息而仅只是警告信息,因为log4j无法输出日志,log4j是一个日志输入软件包。可以将Struts或Hibernate等压缩包解压,内有log4j.properties文件,将它复制到项目src文件夹或将log4j.properties放到 /WEB-INF/classes文件夹中即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值