0

ログメッセージに1、2、3のように順番に番号を付けたい場合、アプリケーションにLog4jを実装しています。この文字列に追加する必要があるもの

log4j.appender.file.layout.ConversionPattern = ? | %-7p | %-30F | %-5L | %-90m | %d %n

「?」の場所の文字列 メッセージにシーケンス番号を付けるには何を書けばよいですか。

よろしくマユール

4

1 に答える 1

0

次の 2 つのオプションがあります。

  • %rlog4j が開始されてからのミリ秒数です。
  • %d{ISO8601}または独自のカスタム形式を使用して、並べ替え可能な日付を作成できます。

[編集]ログメッセージに順番に番号を付けるには、独自のPatternLayout. メソッドをオーバーライドしてcreatePatternParser()、カスタム パターンを使用できるようにします%S

では、次のPatternParser場合にオーバーライドして独自にfinalizeConverter()追加します。PatternConverterc == 'S'

protected
void finalizeConverter(char c) {
     if( 'S' == c ) return SequentialConverter.INSTANCE;
     else return super.finalizeConverter(c);
}

SequentialConverter静的カウンターが必要です。format()次に、ログ メッセージにカウンターを追加するようにオーバーライドできます。

public
void format(StringBuffer sbuf, LoggingEvent e) {
    sbuf.append( counter );
}
于 2012-11-21T10:39:59.737 に答える