0

私はlog4jでかなり新しいです。ログのタイムスタンプ、優先度、完全修飾クラス名、メッセージ、クラス名のみの情報を含むログ メッセージを表示したい。CATEGORY を 2 回、ConversionPattern で 1 回、別の ConversionPattern で 1 回表示しようとしています。これが私のlog4j.propertiesの一部です:

log4j.appender.JDBC2.layoutPartsDelimiter=#-#    
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n

悲しいことに、それは機能しません。完全修飾クラス名とクラス名のみを同じログ メッセージに表示するにはどうすればよいですか? ティア。

フランチェスコ

4

2 に答える 2

2
  1. ここでは log4j.appender.B1.layout.ConversionPattern がキーであり、関連付けることができる値は 1 つだけです。したがって、次のように書くと:

    
    Log4j.appender.B1.layout.ConversionPattern=%some%value%here
    Log4j.appender.B1.layout.ConversionPattern=%another%value%here
    
    後の値は前の値を上書きするだけです

  2. 2 つの異なるアペンダーを定義し、必要なロガー (例として rootLogger) に関連付けることができます。

    
    log4j.rootLogger=debug,console,console2
    
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.err
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern= %p %C (%F:%M(%L)) -
    %m%n
    
    log4j.appender.console2=org.apache.log4j.ConsoleAppender
    log4j.appender.console2.target=System.err
    log4j.appender.console2.layout=org.apache.log4j.PatternLayout
    log4j.appender.console2.layout.ConversionPattern= %p %c{1}
    (%F:%M(%L)) - %m%n 

    注: 2 つのアペンダーの唯一の違いは、アペンダーの名前と ConversionPattern プロパティです。

  3. log4j のより詳細な説明を見つけることができます log4j の簡単な紹介
于 2012-05-09T05:40:47.447 に答える
0

それは私の間違いでした。私の前の投稿でわかるように、DelimiterとPatternLayoutは異なるアペンダーを参照しています。私が変える

log4j.appender.JDBC2.layoutPartsDelimiter=#-#    
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n

これに:

log4j.appender.B1.layoutPartsDelimiter=#-#    
log4j.appender.B1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n #-#%-4r [%t] %-5p %c{1} %x %m%n

@ LAYOUT:1 @を使用すると、すべてが正常に機能します。最初のConversionPattern(区切り文字#-#の左側)を取得しました。@ LAYOUT:2 @を使用すると、2番目のパターンが得られます。ありがとうございました。

フランチェスコ

于 2012-05-09T10:01:46.420 に答える