当前位置: 首页 > 知识库问答 >
问题:

log4j记录所有内容,而不考虑根级别

阳凌
2023-03-14
log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@64c3c749.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@64c3c749 class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@64c3c749.
log4j: Trying to find [log4j.properties] using sun.misc.Launcher$AppClassLoader@64c3c749 class loader.
log4j: Trying to find [log4j.properties] using ClassLoader.getSystemResource().
log4j: Could not find resource: [null].
<!-- Definition des appenders par niveau de log -->
<appender name="all" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_ALL.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="ERROR"/>
    </filter>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="debug" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_DEBUG.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="DEBUG"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="info" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_INFO.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="INFO"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="warn" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_WARN.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="WARN"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="error" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_ERROR.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="ERROR"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="fatal" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010_FATAL.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelToMatch" value="FATAL"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<!-- Definition des appenders specifiques -->
<!-- MVNO 2012 -->
<appender name="mvno2012" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_MVNO2012.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.PatternLayout">            
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %t | %L | %m%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
</appender>

<!-- Moteur de collecte -->
<appender name="engine_collecte" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_COLLECTE_ENGINE.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <layout class="org.apache.log4j.PatternLayout">            
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %t | %L | %m%n" />
    </layout>
</appender>

<!-- Utilitaires apache (org.apache ...) -->
<appender name="apache_utilities" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_APACHE_UTILITIES.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelMatchFilter">
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>



<appender name="aruba" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARUBA.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="fx" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_FX.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <filter class="org.apache.log4j.varia.DenyAllFilter"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="tuxedo" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_TUXEDO.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c | %L | %m%n" />
    </layout>
</appender>

<appender name="arbor2010" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="${REP_LOG_OPE}/CA_ARBOR2010.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="80000KB"/>
    <param name="MaxBackupIndex" value="2000"/>
    <layout class="org.apache.log4j.SimpleLayout"/>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">            
        <param name="levelMin" value="DEBUG"/>
        <param name="levelMax" value="FATAL"/>
    </filter>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd/MM/yy - HH:mm:ss,SSS} | %-1p | %c{1} | %L | %X{ID} | %m%n" />
    </layout>
</appender>

<logger name="com.ours.theirs.arbor2010" additivity="false">
    <appender-ref ref="arbor2010"/>
</logger>

<logger name="com.ours.theirs.mvno2012" additivity="false">
    <appender-ref ref="mvno2012"/>
</logger>

<logger name="com.csgsystems" additivity="false">
    <appender-ref ref="aruba"/>
</logger>

<logger name="terrapin" additivity="false">
    <appender-ref ref="tuxedo"/>
</logger>

<logger name="com.csgsystems.fx" additivity="false">
    <appender-ref ref="fx"/>
</logger>

<logger name="com.ours.collecte" additivity="true">
    <appender-ref ref="engine_collecte"/>
</logger>

<logger name="com.ours.common" additivity="false">
    <appender-ref ref="engine_collecte"/>
</logger>

<logger name="org.apache" additivity="false">
    <appender-ref ref="apache_utilities"/>
</logger>

<root>
    <level value="ERROR"/>
    <appender-ref ref="all"/>
</root>

我仍然没有发现正在发生的事情,但以下是我目前发现并做的事情:

1)log4j.xml文件格式不正确:缺少DOCTYPE,有多个布局,某些布局类不正确。
2)我已在命令行中指定了log4j.xml文件的路径;3)对DOMConfigurator和PropertyConfigurator的几次调用,我已将它们删除。

我将研究范围缩小到一个基于线程ID创建动态日志文件的类。在执行该类中的代码之前,log4j控制台日志清楚地表明日志级别为错误。创建动态日志文件时,日志级别切换到Debug。

第三方组件将自己的log4j配置加载到我们的配置之上。它会添加附加符并更改根日志级别。

值得注意的是,当加载新文件时,log4j似乎不会将该信息调试到控制台。

共有1个答案

阙繁
2023-03-14

根级别由第三方组件更改,该组件加载特定配置。

当面对这样的问题:

  1. 检查代码是否不包含任何额外的log4j动态配置加载(DOMConfigurator,PropertyConfigurator)
  2. 检查任何第三方组件是否未加载任何额外的log4j配置
  3. 确保log4j.xml(或log4j.properties)有效。
 类似资料:
  • 问题内容: 我刚刚在工作中获得了一个现有的Web应用程序,该应用程序应该使用Log4J记录其活动。我已经按照告诉我的方式配置了工作空间,其他所有内容(数据库连接,身份验证等)都可以正常工作,只是没有任何内容写入日志文件。其他类似的应用程序没有问题记录。 我已经在应用程序启动时查看了WebSphere控制台,那里没有错误可能表明Log4J没有记录的原因。 我向另一个开发人员提到了这一点(该开发人员曾

  • 我对log4j2比较陌生。当前,我有以下配置文件: 如果我通过静态记录器在这两个类Consoleain和ClientMain中记录一些东西 而且 他们总是使用根记录器的附加器和级别。如果根记录器的级别是“错误”,那么它永远不会显示任何调试级别的日志输出,即使单个记录器的级别是调试。而且,它总是追加到根记录器中指定的日志文件,而不是类的记录器中指定的日志文件。 所以,根记录器似乎以某种方式覆盖了所有

  • 我正在尝试创建基于不同级别的“不同”附加器,但到目前为止,我找不到一种隔离日志级别的方法。。。。 我需要一种方法,能够土地只有INFO优先排序的日志被追加。因为INFO级别的日志记录也会显示DEBUG标记的日志记录器...这对我没有帮助。 另一件事是,对于“相同”包,我无法定义不同的日志附加器: 在这里,我得到了如下错误:

  • 问题内容: 一个活动有很多参与者。参与者的字段为“状态”。 我需要找到除以下事件以外的所有事件:每个参与者的状态都为“出席”的事件。 我可以找到带有以下AR代码的某些参与者处于“呈现”状态的所有事件: 这样就创建了SQL: 这 几乎 可行。问题是,如果参与者的某行(在范围内 )的状态为“离开”,则该事件仍将被获取,因为至少某些同级记录的状态与其他状态相同而不是“现在”。 我需要确保我正在过滤所有事

  • 我目前在使用PrimeFaces 4.0的dataTable中的列的呈现属性上有一个小问题。我的表中有一列不应该总是显示,所以我使用了它的呈现属性并从我的支持bean中获取值。这是第6列也是最后一列。dataTable位于一个p:对话框中,该对话框将显示在方法的末尾。 渲染属性似乎工作正常,因为当showColumn为false时,该列将不会显示,反之亦然,但存在一个问题。如图所示,“未找到记录”

  • 我目前正在评估,因为我相信我开始重新发明轮子,它看起来非常接近:) 现在,在挖掘伟大的留档时,我发现我的用例介于使用JOOQ作为SQL生成器和使用JOOQ作为SQL生成器之间。我想: 创建普通SQL字符串,如使用JOOQ作为SQLBuilder部分所示 而不是使用硬编码的构造,我更喜欢存储表的名称以及它的列名和类型,如使用JOOQ作为SQLBuilder与Code生成部分所示> 我不喜欢使用代码生