0

我想以一种方式归档配置该日志类别“x”的记录器

  • 记录器一在 INFO 级别记录“x”,在 DEBUG 级别记录其他内容
  • 在调试级别记录两个日志“x”

我见过使用 Threshold 为不同 appender 中的同一类别实现不同日志记录级别的示例。在这种情况下,它似乎不是一个有效的解决方案,因为在两个附加程序中,我希望在 DEBUG 级别至少有一个类别。

我试图做类似的事情:

<appender name="FILE_ONE" class="org.jboss.logging.appender.DailyRollingFileAppender">
...
</appender>
<appender name="FILE_TWO" class="org.jboss.logging.appender.DailyRollingFileAppender">
...
</appender>

<category name="y">
    <priority value="DEBUG"/>
    <appender-ref ref="FILE_ONE"/>
</category>
<category name="x">
    <priority value="INFO"/>
    <appender-ref ref="FILE_ONE"/>
</category>
<category name="x">
    <priority value="DEBUG"/>
    <appender-ref ref="FILE_TWO"/>
</category>

但第二类声明会覆盖第一个。

这甚至可以做到吗?

4

3 回答 3

1

appender试试这个.. 在标签下设置优先级param name="Threshold"

<appender name="FILE_ONE" class="org.jboss.logging.appender.DailyRollingFileAppender">
 <param name="Threshold" value="INFO"/>

...
</appender>
<appender name="FILE_TWO" class="org.jboss.logging.appender.DailyRollingFileAppender">
 <param name="Threshold" value="DEBUG"/>
...
</appender>
于 2012-06-22T08:17:31.473 回答
0

与此解决方案类似,您可以使用自己的过滤器来完成工作。此过滤器应该允许给定的 specialCategory 记录在 specialCategoryLevel 级别,其他类别在 generalLevel 级别。

<appender name="FILE_ONE" class="org.jboss.logging.appender.DailyRollingFileAppender">
  <filter class="your.own.Filter">
      <param name="specialCategory" value="x" />
      <param name="specialCategoryLevel" value="DEBUG" />
      <param name="generalLevel" value="INFO" />
  </filter>
...
</appender>
<appender name="FILE_TWO" class="org.jboss.logging.appender.DailyRollingFileAppender">
  <param name="Threshold" value="DEBUG"/>
...
</appender>

<category name="y">
    <appender-ref ref="FILE_ONE"/>
</category>
<category name="x">
    <appender-ref ref="FILE_ONE"/>
    <appender-ref ref="FILE_TWO"/>
</category>
于 2014-11-06T16:05:23.567 回答
0

对我们来说是这样的:

    <appender name="RAF_TIP_CommissionEnrich_v01_CC" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="/opt/sag/99/IntegrationServer/instances/prodap2a/logs/TIP_CommissionEnrich_v01_CC_Trace.log"/>
            <param name="DatePattern" value="'.'yyyyMMdd"/>
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d %-5p - %m%n"/>
            </layout>
    </appender>
          <category name="TIP_CommissionEnrich_v01_CC">
          <priority value="INFO"/>
    <appender-ref ref="RAF_TIP_CommissionEnrich_v01_CC"/>
    </category>
    <!-- root element - leave it on the bottom of file -->
    <appender name="applicationLog" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="/opt/sag/99/IntegrationServer/instances/prodap2a/logs/application.log"/>
            <param name="DatePattern" value="'.'yyyyMMdd"/>
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d %-5p - %m%n"/>
            </layout>
    </appender>
    <root>
            <level value="ERROR"/>
            <appender-ref ref="applicationLog"/>
    </root>

然后你有 TIP_CommissionEnrich_v01_CC 的所有错误 + 信息

于 2018-03-23T12:43:04.713 回答