3

異なるパッケージでメッセージをログに記録するために異なる log4j 変換パターンを使用し、出力に同じファイルを使用する方法。

以下は私の設定ファイルです。異なる変換パターンを使用するために変更する方法を提案してください

<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

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



<appender name="PLUGIN_FILE" class="LoggerTest.NewLogForEachRunFileAppender"> 
     <!-- Below param sets the dir path of the log files -->
    <param name="FileDirPath" value ="/var/opt/mycomp/ftpm/" />
    <!-- Below param sets the suffix name for the log file -->
    <param name="FileNameSuffix" value="_error.log" /> 
    <param name="MaxFileSize" value="10KB"/> 
    <!-- Below param creates the specified number of backup files to be created when rolled back -->
    <param name="MaxBackupIndex" value="10"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%-4r %d [%t] %-5.37c %M() %L %x %m%n" /> 
    </layout>   
    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
        <param name="LevelMin" value="debug" /> 
        <param name="LevelMax" value="fatal" /> 
        <param name="AcceptOnMatch" value="true" /> 
    </filter> 
</appender> 

<appender name="ERROR_FILE" class="LoggerTest.NewLogForEachRunFileAppender"> 
     <!-- Below param sets the dir path of the log files -->
    <param name="FileDirPath" value ="/var/opt/mycomp/ftpm/" />
    <!-- Below param sets the suffix name for the log file -->
    <param name="FileNameSuffix" value="_error.log"/> 
    <param name="MaxFileSize" value="10KB"/> 
    <!-- Below param creates the specified number of backup files to be created when rolled back -->
    <param name="MaxBackupIndex" value="10"/> 
    <layout class="org.apache.log4j.PatternLayout"> 

        <param name="ConversionPattern" value="%d [%t] - %m%n" /> 
    </layout> 
    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
        <param name="LevelMin" value="error" /> 
        <param name="LevelMax" value="fatal" /> 
        <param name="AcceptOnMatch" value="true" /> 
    </filter> 
</appender> 

<logger name="LoggerTest.a" additivity="false">
        <appender-ref ref="PLUGIN_FILE"/>
</logger>

<root> 
    <level value="error" />     
        <appender-ref ref="ERROR_FILE" />

    <!-- To enable the trace messages for debugging uncomment the below appender ref statement -->
    <level value="DEBUG" />
             <appender-ref ref="DEBUG_FILE" /> 
</root>
</log4j:configuration>
4

2 に答える 2

2

log4j 構成ファイルを調べると、レベルのあるすべてのログDEBUGを 1 つのファイルにキャプチャし、レベルのあるすべてのログをERROR別のファイルにキャプチャし、ファイルごとに異なる変換パターンを使用する必要があることがわかります。

その場合は、ルートロガーでレベル値を定義すると、ログ階層のそれよりも下のすべてとともに、レベルが記載されているすべてのログをキャプチャするため、それを実装するために他のメカニズムをデバイスする必要があります

OFF
FATAL
ERROR
WARN
INFO
DEBUG
TRACE
ALL

ロガーレベル

詳細については、これをお読みください

于 2012-10-25T10:06:02.153 に答える
1

FileAppender に変換パターンが割り当てられているため、できないと思います。異なるパターンを同じファイルに入れる正当な理由はありますか? ログの読み取り/解析が困難になります。

于 2012-10-25T11:20:01.630 に答える