3

私の要件は、メッセージを 3 つの個別のログ ファイルに記録することです。

JBOSS サーバーで 3 つのアペンダーを使用しています。

そのうちの 3 つは、1.RollingFileAppender、consoleAppender などの方法で機能する必要があり、'INFO' モードと 'ERROR' モードで機能します。2.「エラー」モードおよび特定のカテゴリ専用の DailyRollingFileAppender。

優先度の値とカテゴリを変更するなど、多くの組み合わせを試しましたが、これまでのところ、3 つすべてが同時に機能する方法は見つかりませんでした。fileAppender と ConsoleAppender のいずれかが機能し (エラーと情報の両方をログに記録)、DailyRollingFileAppender は機能しないか、DailyRollingFileAppender は機能しますが、他の 2 つは情報ではなくエラーのみをログに記録します。

3人がうまくいく方法を教えてください。

以下は、私が使用している log4j.xml です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<!-- ===================================================================== -->
<!--                                                                       -->
<!--  Log4j Configuration                                                  -->
<!--                                                                       -->
<!-- ===================================================================== -->

<!--  -->

<!--
   | For more configuration infromation and examples see the Jakarta Log4j
   | owebsite: http://jakarta.apache.org/log4j
 -->

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

  <!-- file appender -->
  <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="file" value="C:/logs/mdmWSServer.log" /> 
    <param name="MaxBackupIndex" value="5" />
    <param name="MaxFileSize" value="5MB" />
    <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{ISO8601}] [%t] [%-5p][ %c:] %m%n"/>
    </layout>
  </appender> 

     <appender name="dailyFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="file" value="C:/logs/dailyApp.log"/>
    <param name="MaxBackupIndex" value="5" />
    <param name="MaxFileSize" value="5MB" />
     <param name="DatePattern" value="'.'yyyy-MM-dd-HH" />
    <layout class="org.apache.log4j.PatternLayout">       
        <param name="ConversionPattern" value="[%d{ISO8601}] [%t] [%-5p][%c:] %m%n"/>
    </layout>
  </appender> 

  <appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%d{ISO8601}] [%t] %m%n"/>
    </layout>
  </appender> 

   <category name="com">
      <priority value="INFO"/>
      <appender-ref ref="fileAppender"/>
      <appender-ref ref="consoleAppender"/>
  </category> 
    <category name="com.gsk">    
    <priority value="ERROR"/>
      <appender-ref ref="dailyFileAppender"/>
  </category>
  <category name="org.apache">
      <priority value="INFO"/>
      <appender-ref ref="fileAppender"/>
  </category>

  <root>
    <priority value="DEBUG"/>
    <appender-ref ref="fileAppender"/>
    <appender-ref ref="consoleAppender"/>
  </root>
</log4j:configuration>
4

1 に答える 1

1

ログに記録するレベルを指定することで、特定のレベルのみをログに記録するようにアペンダーを制限できfilter classます。以下のサンプルコードを参照してください

    <appender name="TRACE" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="[%t] %-5p %c - %m%n" />
            </layout>
            <filter class="org.apache.log4j.varia.LevelRangeFilter">
                    <param name="levelMin" value="DEBUG" />
                    <param name="levelMax" value="DEBUG" />
            </filter>
    </appender>
于 2013-02-07T05:27:13.137 に答える