2011-07-27 8 views
2

log4jアペンダーのX個をファイル内のメッセージレベルに、コンソール内にすべて印刷したいと考えています。しかし、私は取得しません。LOG4J:メッセージレベル別に1人のアペンダー

私の実際のlog4j.properties:解決しよう

log4j.rootLogger=ALL, CONSOLA 

log4j.appender.CONSOLA=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLA.layout.ConversionPattern=%-4r %d %-5p %c - %m%n 

log4j.appender.WARNLOG=org.apache.log4j.FileAppender 
log4j.appender.WARNLOG.threshold=WARN 
log4j.appender.WARNLOG.file=XX/web/WEB-INF/serverlogs/warn-server.log 
log4j.appender.WARNLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.WARNLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n 
log4j.appender.WARNLOG.append=true 
log4j.appender.WARNLOG.MaxFileSize=250KB 
log4j.appender.WARNLOG.MaxBackupIndex=backup 

log4j.appender.FATALLOG=org.apache.log4j.FileAppender 
log4j.appender.FATALLOG.threshold=FATAL 
log4j.appender.FATALLOG.file=XX/web/WEB-INF/serverlogs/fatal-server.log 
log4j.appender.FATALLOG.layout=org.apache.log4j.PatternLayout 
log4j.appender.FATALLOG.layout.ConversionPattern=%-4r %d %-5p %c - %m%n 
log4j.appender.FATALLOG.append=true 
log4j.appender.FATALLOG.MaxFileSize=250KB 
log4j.appender.FATALLOG.MaxBackupIndex=backup 

log4j.logger.com.XX=WARN, WARNLOG 
log4j.logger.com.XX=FATAL, FATALLOG 

を私はLevelRangeFilter

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

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/> 
     </layout> 
    </appender> 

    <appender name="FATALLOG" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="xx/web/WEB-INF/serverlogs/fatal-server.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/> 
     </layout> 
     <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
      <param name="LevelMax" value="FATAL"/> 
      <param name="LevelMin" value="FATAL"/> 
      <param name="AcceptOnMatch" value="true"/> 
     </filter> 
    </appender> 

    <appender name="WARNLOG" class="org.apache.log4j.FileAppender"> 
     <param name="File" value="xx/web/WEB-INF/serverlogs/warn-server.log"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-4r %d %-5p %c - %m%n"/> 
     </layout> 
     <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
      <param name="LevelMax" value="WARN"/> 
      <param name="LevelMin" value="WARN"/> 
      <param name="AcceptOnMatch" value="true"/> 
     </filter> 
    </appender> 

    <logger name="com.xx"> 
     <appender-ref ref="CONSOLE" /> 
     <appender-ref ref="FATALLOG" /> 
     <appender-ref ref="WARNLOG" /> 
    </logger> 

</log4j:configuration> 
+0

はあなたが送ってやった+ ERROR + WARNLOGにFATALをWARNん、そしてあなただけWARNたいですか?それを発見することができますかそれとも、他のログに書き込むことはありませんか? (あなたは 'log4j.rootLogger = ALL、CONSOLA、WARNLOG、FATALLOG'を使って元の動作を得ることができると知っていますが、あなたが必要とするものではないかもしれません。) – dbreaux

答えて

0

LevelMatchFilterを使用するか、またはそれを適応を使用しています。

1

異なるロガーを使用するか、LevelMatchFilterを使用する必要があります。

詳細については、完全なLog4jマニュアルを検索することができます。

あなたはhereまたはhere

+0

もう一度、ありがとう、LevelMatchFilterについて学ぶ** LevelRangeFilter **質問の方がいいですし、プロパティファイルよりもXMLのほうが良いことがわかります。全てに感謝。 – Dani

+0

手動リンクの場合+1。私がLog4Jを調べるたびに、情報の一部がほしいと思ったときに本を買うためのリンクが見つかりました。 – 101100

関連する問題