2009-05-01 1 views
7

コンソールには特定の語を持つステートメントのみを表示できますか? EQの選択したLog4jデバッグ・ステートメントのみを表示

logger.debug ("java: hello "); 
    logger.debug ("groovy: hello "); 
    logger.debug ("ruby: hello "); 

、いくつかの設定か何かをすることによって、グルーヴィーで始まるされているすべてのステートメントは:表示されるはずです。

答えて

8

続きを読むことができます。 onlineを見つけました。ここ

は簡単な例です:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="CustomAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="custom.log"/> 
    <param name="Append" value="true"/> 
    <param name="MaxFileSize" value="5000KB"/> 
    <param name="maxBackupIndex" value="5"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p - %m%n" /> 
      </layout> 

      <filter class="org.apache.log4j.varia.StringMatchFilter"> 
        <param name="StringToMatch" value="Here is DEBUG" /> 
        <param name="AcceptOnMatch" value="true" /> 
      </filter> 

      <filter class="org.apache.log4j.varia.DenyAllFilter"/> 
    </appender> 

    <root> 
    <appender-ref ref="CustomAppender"/> 
    </root> 
</log4j:configuration> 
+0

興味深いと思いますが、詳細を教えてください。 –

0

何についてのあなたの習慣レベル

public class Groovy extends Level 

を作成し、ログのプロパティで希望が、これは、 ダビデを助け、あなたの構成として、

をそれらのレベルを設定するファイルです。

+0

Davidさん、ありがとうございます。 –

0

異なるロガーを使用することができます(たとえば、「java」メッセージのロガーと「groovy」メッセージのロガー)。 Log4Jの設定は、各ロガーごとに異なるレベルで設定できます。

あなたは、あなたがApacheのログから、「エキストラ」パッケージの一部であるのlog4j StringMatchFilterを使用したいhere

0

一つは、メッセージをフィルタリングするためのツールを使用することができます。 WindowsではBareTailでこれを行うことができます。メッセージのフィルタリングは、プロ(有料)バージョンでのみ可能です。同じ仕事をするツールが他にもあるかもしれません。

0

SLF4Jマーカーはおそらくあなたの目的に適しています。デバッグや情報などのすべての印刷方法はorg.slf4j.Loggeradmit a Marker as a first parameterです。さらに、元のSLF4J実装であるlogback-classicには、MarkerFilterというフィルターが付属しています。

関連する問題