Mavenビルドのロギングを構成するにはどうすればよいですか?Mavenが生成するログは、各ログステートメントのタイムスタンプなどの十分な情報を提供していません。Mavenが使用するログ構成ファイルはどこ/何ですか?
5 に答える
これはご存知かもしれませんが、日付は出力されませんが、mvn -X
詳細な出力を出力するために使用されます。
さらに、いつでも maven の出力を他のユーティリティにパイプすることができます (シェル環境に中程度の有能なツールが含まれていると仮定します)。たとえば mvn -X clean | awk '{print "("d")"$0}' "d=$(date)"
、maven の各行の前に日付を出力します。わざわざ日付をフォーマットする必要はありませんでしたが、これはdate
実行可能ファイルへの引数を使用して簡単に行うことができます。これは、インタラクティブなユーザー入力を必要とする Maven コマンド ( など) では実際には機能しないことに注意してくださいmaven archetype:generate
。
@whaleyによって提供された回答は良い方向です。ただし、$(date)は最初に一度だけ評価され、その後は同じままです。stdinの前にタイムスタンプを追加するUnixユーティリティはありますか?で説明したアプローチを使用する必要がありました。:
mvn -X <goals> | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0; }'
@eckes によって提案されているように、Maven 3.1.0 以降では、デフォルトのロギング構成ファイルが /conf/logging/simplelogger.properties で利用可能です。
「org.slf4j.simpleLogger.showDateTime」プロパティ値を「true」に変更します
org.slf4j.simpleLogger.showDateTime=true
dateTimeFormat を変更するには、デフォルトはミリ秒単位の相対時間です。
simplelogger.properties ファイルに以下の行を追加します。
org.slf4j.simpleLogger.dateTimeFormat=HH:mm:ss:SSS
参照:
Maven ロギング: https://maven.apache.org/maven-logging.html
DateFormats: http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html
バージョン 3.1 および 3.2 の Maven では、SLF4J ベースのロガーをより簡単に構成できます。コマンドラインで「-l logfile」を指定できます。SimpleLogger のデフォルト設定は設定ファイルにありますconf/logging/simplelogger.properties
。
デフォルトのタイムスタンプ (開始からのミリ秒) を有効にしたい場合は、このファイルのプロパティを簡単に変更できます: org.slf4j.simpleLogger.showDateTime=true
.
This still seems some closed issue in Maven, as you can see on:
https://issues.apache.org/jira/browse/MNG-519
The provided workaround looks not too bad, but you need to modify the maven installation.