【问题标题】:LOG4J Log level exceptionsLOG4J 日志级别异常
【发布时间】:2015-12-16 22:05:16
【问题描述】:

我试图搜索类似的东西,但还没有找到。我正在尝试配置 2 个日志文件,一个更健谈,一个更安静。在我的主日志文件中,我想要 WARN 及以上,但已将几个包配置为 DEBUG 或 INFO 级别。我有第二个文件,我只想要错误消息,但调试级别的一个类除外。配置已附加,但我从未在安静日志中看到 CLazz 调试。想法?

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="MAINLOGFILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="/var/log/jboss/main.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="5000KB"/>
    <param name="MaxBackupIndex" value="7"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} [%x]: %m%n"/>
    </layout>
</appender>
<appender name="QUIETFILE" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="/var/log/jboss/quiet.log"/>
    <param name="Append" value="true"/>
    <param name="MaxFileSize" value="5000KB"/>
    <param name="MaxBackupIndex" value="7"/>
    <param name="Threshold" value="ERROR"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1} [%x]: %m%n"/>
    </layout>
</appender>

<category name="com.foo.bar">
    <priority value="info"/>
    <appender-ref ref="MAINLOGFILE"/>
</category>

<!-- Several other INFO and DEBUG package here -->

<category name="com.foo.bar.biz.Clazz">
    <priority value="debug"/>
    <appender-ref ref="QUIETFILE"/>
</category>

<root>
    <param name="Level" value="warn"/>
    <appender-ref ref="MAINLOGFILE"/>
    <appender-ref ref="QUIETFILE"/>
</root>

【问题讨论】:

  • 我想你的问题已经回答了stackoverflow.com/questions/8653548/…
  • 我了解阈值和优先级设置的目的,但是,我希望安静日志包含 ERROR 及以上,但我希望在 DEBUG 时使用一个记录器。将阈值设置为 ERROR 将始终排除 DEBUG 优先级,但将阈值设置为 DEBUG 噪音太大。试图找到覆盖某一类阈值的设置。

标签: java log4j


【解决方案1】:

尝试将其更改为:

<category name="com.foo.bar.biz.Clazz" additivity="false">

似乎你做了与这里解释的相同的解决方案(没有“可加性”):

10.3.5。重定向类别输出
http://docs.jboss.org/process-guide/en/html/logging.html

【讨论】:

  • 感谢您的信息和链接,我终于了解了我以前没有的可加性标志。但是,在我的测试中,这不允许任何 Clazz 记录在 quiet.log 文件中。当我将 QUIETFILE 附加程序的阈值更改为不同的阈值时,我确实只在 quiet.log 中获得了我期望的日志记录,但是,我从新的日志记录级别获得了额外的日志记录。不知道为什么它只在那个 appender 中不覆盖 Clazz 级别。还有其他想法吗?
  • 找到了正确的组合。删除了 appender 配置的阈值,为我想要记录错误的包添加了几个新的记录器,并且仅引用 QUIETFILE appender,并从根配置中删除了 QUIETFILE。似乎给了我想要的。再次感谢您让我走上正轨!
猜你喜欢
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多