18

log4j.properties私は例えばを設定することができPatternLayoutます("[%p] %c - %m - %d %n")

現在の時刻をミリ秒単位で返す記号(%something)はありますか?

4

4 に答える 4

26

これを試すことができます。

log4j.appender.appender_name.layout=org.apache.log4j.PatternLayout
log4j.appender.appender_name.layout.ConversionPattern=%d %p [%c] - %m%n

日付パラメータ%d。例: %d{HH:mm:ss,SSS}.

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html

于 2012-08-01T10:38:40.607 に答える
20

あなたが望むことを正確に行うLog4Jシンボルはありません。

%da (括弧内に配置したパターン) で定義された特定のパターンで現在の日付を返しますがSimpleDateFormat、ミリ秒単位の時間は提供しません。

%r実行開始からのミリ秒数を返します。

あなたが望むものを達成するための1つの可能な方法は、Log4jの動作を拡張することです.それはかなり複雑ですが、それが絶対に必要な場合...ここに行きます:

log4j のカスタマイズ(編集: もうオンラインではありませんか?)
log4j のカスタマイズ(編集: 2018 年の代替)

編集:コメントから、異なるマシンでの実行間の時間差を把握する必要がある場合は、マシンのクロックが同期されていることを確認する必要があることに注意してください。そうしないと、間違った結論につながります。

于 2012-08-01T10:43:22.643 に答える
12

これを試して、

   %d{dd MMM yyyy HH:mm:ss,SSS}
于 2012-08-01T10:40:27.187 に答える
4

マニュアル%d{UNIX_MILLIS}から使用できるはずです:

%d{UNIX}UNIX 時間を秒単位で出力します。%d{UNIX_MILLIS}UNIX 時間をミリ秒単位で出力します。UNIX 時間は、現在の時刻と 1970 年 1 月 1 日 UTC の午前 0 時との差 (UNIX の場合は秒単位、UNIX_MILLIS の場合はミリ秒単位) です。時間単位はミリ秒ですが、粒度はオペレーティング システム (Windows) によって異なります。long から String への変換のみが行われ、Date の書式設定は行われないため、これはイベント時間を出力する効率的な方法です。

于 2017-04-18T12:44:31.013 に答える