2017-06-07 46 views
1

Tomcatで実行されている単純なアプリケーション用のログを設定したいのですが、エラーレベルのものを除いたすべてのログを1つのファイルに、エラーを他のものに送信したいと考えています。Tomcatでのlog4j.xmlの設定

log4j.xmlをどのように設定して動作させるのですか?

<appender name="regular-container" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="regularLogs.log" /> 
</appender> 

<appender name="error-container" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="errorLogs.log" /> 
</appender> 

<logger name="regular-container"> 
????????????????????? 
</logger> 

<logger name="error-container"> 
????????????????????? 
</logger> 

答えて

1

このlog4j.xmlを試してみてください:私はそれは大丈夫だと仮定しても、これは、errorsOnlyでFATALログが含まれていることを

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration debug="true" 
    xmlns:log4j='http://jakarta.apache.org/log4j/'> 

    <appender name="errorsOnly" class="org.apache.log4j.RollingFileAppender"> 
     <param name="file" value="errorLogs.log" /> 
     <param name="threshold" value="ERROR" /> 
    </appender> 

    <appender name="regular" class="org.apache.log4j.RollingFileAppender"> 
     <param name="file" value="regularLogs.log" /> 
     <param name="threshold" value="DEBUG" /> 
    </appender> 

    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="errorsOnly" /> 
     <appender-ref ref="regular" /> 
    </root> 

</log4j:configuration> 

は注意を。 errorsを最初に持っているのは、最初のしきい値がERRORに設定されているということは、エラーレベル以上がerrorsOnlyによって処理されることを意味します。 errorsOnlyでまだ処理されていないDEBUG以上は通常の方法で処理されます。私はsimilar issueという別の例を見つけました。

0

回答ありがとうございましたが、それは動作しませんでした。各アペンダーのフィルターパラメーターを使用して、はい。

<filter class="org.apache.log4j.varia.LevelRangeFilter"> 
     <param name="levelMin" value="ERROR" /> 
     <param name="levelMax" value="FATAL" /> 
    </filter>