簡體   English   中英

將具有不同日志記錄級別的類別添加到log4j中的不同附加程序

[英]Add category with different logging levels to different appenders in log4j

我想必須以某種方式配置該日志類別“ x”的文件記錄器

  • 記錄器一個在INFO級別記錄“ x”,在DEBUG級別記錄其他內容
  • 在調試級別記錄兩個日志“ x”

我看過一些示例,這些示例使用Threshold在不同的附加程序中為同一類別實現不同的日志記錄級別。 在這種情況下,這似乎不是一個有效的解決方案,因為在兩個附加程序中,我都希望在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>

但是第二個類別聲明會覆蓋第一個類別。

這樣做有可能嗎?

嘗試此操作。通過param name="Threshold"appender標簽下設置優先級。

<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>

該解決方案類似,您可以使用自己的過濾器來完成工作。 此篩選器應允許給定的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>

對於我們來說,是這樣的:

    <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的所有錯誤+信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM