Java Log4j似乎跳过了一个特定包的日志条目——尽管配置不同

Java Log4j似乎跳过了一个特定包的日志条目——尽管配置不同,java,log4j,Java,Log4j,我向一个给我带来麻烦的特定类添加了大量日志记录,升级了log4j.properties文件,并希望看到大量调试信息 虽然我确实看到了更多信息,但我最感兴趣的一个特定类的消息似乎完全没有了 奇怪的是,我从测试服务器复制了log4j.properties文件——实际上,在那里,我将正确的信息输出到了生产服务器——它们是相同的 以下是log4j.properties的内容: log4j.debug=false log4j.rootLogger=INFO, S log4j.category.com.

我向一个给我带来麻烦的特定类添加了大量日志记录,升级了log4j.properties文件,并希望看到大量调试信息

虽然我确实看到了更多信息,但我最感兴趣的一个特定类的消息似乎完全没有了

奇怪的是,我从测试服务器复制了log4j.properties文件——实际上,在那里,我将正确的信息输出到了生产服务器——它们是相同的

以下是log4j.properties的内容:

log4j.debug=false

log4j.rootLogger=INFO, S

log4j.category.com.communitect=DEBUG, F1, S
log4j.additivity.com.communitect=false

log4j.appender.F1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F1.DatePattern='.'yyyy-MM-dd
log4j.appender.F1.File=${catalina.base}/logs/smilereminder_log
log4j.appender.F1.layout=org.apache.log4j.PatternLayout
log4j.appender.F1.layout.ConversionPattern=%d %5p [%t] (%c{2}) - %m%n

log4j.appender.S=org.apache.log4j.ConsoleAppender
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n
该文件位于Tomcat安装的lib目录中

我从中看到的包是:

package com.communitect.business;
我声明记录器的方式如下:

static private final Logger logger = Logger.getLogger( PersonalReminderRules.class );
这个类中的所有消息都显示在我的测试服务器上,因此我知道log4j.properties文件应该工作得很好

我四处寻找另一个log4j.properties文件,但似乎没有。也没有.xml配置文件


我有点想不通。有什么想法吗?

@oers,好主意,谢谢!:)

以下是我们找到的解决方案:

因此,appVoiceWebApp上下文中似乎有一个log4j.jar。移除它似乎解决了这个问题


我假设类加载webapps“覆盖”了最初加载的类,因此使用了全新的配置。

如果测试和生产具有相同的log4j.properties(并且两者都没有log4j.xml文件),那么差异应该在代码中。也许代码中有某种“DEBUG_MODE”标志?愚蠢的问题,但是
personalmemberrules.class
参数是正确的,对吗?这不是剪切粘贴错误,对吗?您确定类路径中没有隐藏的
log4j.properties
文件吗?因此,appVoice WebApp上下文中似乎有一个log4j.jar。删除它似乎已经解决了问题。请将解决方案添加为问题的答案而不是编辑,好吗?然后,您可以选择您的答案作为正确答案,并结束您的问题。这可能看起来很奇怪,但这是处理类似情况的首选方法。@amy_你应该将你的解决方案作为真实答案发布(你可以稍后接受)。