我在tomcat服务器上部署了一个应用程序,并使用log4j日志记录系统。应用程序托管在centOS上。
我的问题是--在我的ServletContextListener中,log4j很好地记录我在控制台上指示的消息,但是当tomcat最终完成启动时,log4j就不再工作了。
奇怪的是,这个应用程序部署在UAT环境中,log4j工作得很好。唯一的区别是UAT上的tomcat和生产上的tomcat,我的tomcat目录中有一些符号目录,其中webapp,bin等等。都找到了。
知道为什么会有这个问题吗?
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n" />
</layout>
</appender>
<logger name="com.el.app">
<level value="warn" />
<appender-ref ref="console" />
</logger>
发布于 2011-04-13 20:11:07
我想知道是否还有什么东西正在尝试配置log4j,或者是否有两个实例,并且在启动期间和稍后在不同的实例上使用一个实例。ClassLoader弹出。
您可以尝试使用java -verbose:class运行tomcat。这将提供大量有关已加载类的日志。检查是否加载过一次日志记录,或者是否加载了其他日志库。
另一个测试是删除所有log4j设置。Log4j现在应该抱怨设置不正确。如果没有的话,我会说其他的东西正在以意想不到的方式配置它。
您可以检查Log4J是否提供任何钩子来通知您配置中的更改。
最后,您可以调试到对log4j的调用,以查看您的消息被吞没的位置。
https://stackoverflow.com/questions/5648285
复制相似问题