2017-09-05 9 views
0

これは私のプログラムで使っていますが、log4j.propertiesでどのようにこのログをフィルタリングできますか?また、あなたことに、注意してくださいあなたがlog4jの2.0を使用しているmanuallog4j.propertiesのMarkerを使用してログをフィルタリングする方法を教えてください。

で説明したように、あなたがMarkerFilterを使用してログをフィルタすることができますと仮定

log4j.rootLogger=info,F 
log4j.appender.F=org.apache.log4j.RollingFileAppender 
log4j.appender.F.File=client.log 
log4j.appender.F.MaxBackupIndex=10 
log4j.appender.F.MaxFileSize=100MB 
log4j.appender.F.layout=org.apache.log4j.PatternLayout 
log4j.appender.F.layout.ConversionPattern=[%d] %p %m (%c)%n 

答えて

1

Marker marker = MarkerFactory.getMarker("tp-count"); 
log.info(marker, "The num of tp is {}", 10); 

log4j.propertiesはこのようなものですpropertiesの設定をxmlの設定に変更する必要があります。を明確に示すhere。あなたはちょうどpropertiesアプローチを使用してフィルタリングを実装することはできません!

このonline toolを使用すると、プロパティをxmlにすばやく変換できます。あなたの最終log4j2.xmlは、次の例のように見えることができます

自動的にそれはあなたのアプリケーションによってピックアップされるようにしてください、あなたのlog4j2.xmlを配置し、正しく命名されていることを確認するために、手動の this sectionに相談してください:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="F" class="org.apache.log4j.RollingFileAppender"> 

     <!-- below forces inclusion of only log events with marker 'tp-count' to this client.log--> 
     <MarkerFilter marker="tp-count" onMatch="ACCEPT" onMismatch="DENY"/> 

     <param name="File" value="client.log"/> 
     <param name="MaxBackupIndex" value="10"/> 
     <param name="MaxFileSize" value="100MB"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="[%d] %p %m (%c)%n"/> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="F"/> 
    </root> 
</log4j:configuration> 
関連する問題