Tomcat启动后Log4j不工作

Tomcat启动后Log4j不工作,tomcat,logging,log4j,Tomcat,Logging,Log4j,我在tomcat服务器上部署了一个应用程序,并使用log4j日志系统。该应用程序托管在centOS上 我的问题是-在我的ServletContextListener中,log4j记录我在控制台上指示的消息,但当tomcat最终完成启动时,log4j不再工作 奇怪的是,这个应用程序部署在UAT环境中,log4j工作正常。 唯一的区别是UAT上的tomcat和生产上的tomcat,我在我的tomcat目录中有一些符号目录,其中有webapps、bin等。。位于 知道为什么会出现这个问题吗 我

我在tomcat服务器上部署了一个应用程序,并使用log4j日志系统。该应用程序托管在centOS上

我的问题是-在我的ServletContextListener中,log4j记录我在控制台上指示的消息,但当tomcat最终完成启动时,log4j不再工作

奇怪的是,这个应用程序部署在UAT环境中,log4j工作正常。 唯一的区别是UAT上的tomcat和生产上的tomcat,我在我的tomcat目录中有一些符号目录,其中有webapps、bin等。。位于

知道为什么会出现这个问题吗



我想知道是否有其他东西正在尝试配置log4j,或者是否有两个实例,您在启动期间使用一个实例,稍后在另一个实例上使用一个实例。类加载器弹出

您可以尝试使用java-verbose:class运行tomcat。这将提供大量关于加载的类的日志。检查是否有任何日志记录被多次加载,或者是否有其他日志记录库被加载

另一个测试是删除所有log4j设置。Log4j现在应该抱怨没有正确设置。如果没有,我会说其他东西正在以出乎意料的方式配置它

您可以检查Log4J是否提供任何钩子来通知您配置中的更改


最后,您可能会调试到一个对log4j的调用中,以查看消息在哪里被吞没。

您所说的不再工作是什么意思?它在两者之间起作用吗?什么是不工作?它会产生异常、记录错误还是什么都不做?配置log4j时使用的代码(java、xml或其他)是什么?是的,它在这两者之间工作。我还注意到控制台附近不会打印异常。
<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>