Javaロギングのロギングレベルを調整できません。mavensurefire(mvn test)を使用しており、デフォルトのINFOからFINESTなどに調整しようとしています。
src/test/resources/logging.propertiesの下にlogging.propertiesファイルがあります
コンパイル後、target/test-classesの下に、目的の構成を含むlogging.propertiesファイルが表示されます。
Java.util.logging.ConsoleHandler.level = FINEST
javax.enterprise.system.container.ejb.level = FINE
...
ただし、glassfishからのコンソール出力にはINFO/SEVEREレベルのメッセージしかありません。
どこで私は間違えましたか?それとも、これはmavenの尻のことの別の痛みですか?
ハンドラーをログファイルで指定する必要があります
handlers = Java.util.logging.ConsoleHandler, Java.util.logging.FileHandler
その後、それはうまくいくはずです
私はJava.util.logging.config.fileをMAVEN_OPTS環境変数に設定しようとしましたが、これは機能しませんが、最終的にはそのシステムプロパティをpom.xmlに入れて(そしてもちろん、適切なlogging.propertiesをsrc /に作成して)機能させましたテスト/リソース):
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>Java.util.logging.config.file</name>
<value>src/test/resources/logging.properties</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
試す
${build.testOutputDirectory}/logging.properties
また、コマンドラインでsurfire-argsを使用してこれを指定します。
<argLine>${surefire.argLine} ${argLine} -Djava.util.logging.config.file=${build.testOutputDirectory}/logging.properties</argLine>
私はこの正確な問題を見ていましたが、テストで特定のロギングが必要になるたびにプロジェクト構成(pom.xml)ファイルを変更したくありませんでした。
-Dプロパティはmavenコマンドラインから機能します。
したがって、コマンドラインからロギング構成ファイルを選択できます。
mvn -Djava.util.logging.config.file=`enter filename here` test
一般的なレベルの分母を使用している場合.level=FINEST
サードパーティのロギングもそのレベルで表示されることに注意してください。
Mavenまたはサードパーティのロギングを特定のレベルに無効化または設定するには、選択したログ構成ファイルで、これらのクラスに対して明示的なログレベル選択を使用します。
Com.google.inject .....からのログ行がたくさんあります.
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Instance member validation: 3ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Provider verification: 1ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Static member injection: 1ms
だから私は追加します:
com.google.inject.level=INFO
ファイルに。レベル設定はすべてのサブクラスに再帰的であることに注意してください。したがって、com.level=NONE
は、com
ドメインのすべてのロガーのすべてのロギングを無効にします。
これとテスト選択機能を組み合わせる-Dtest=...
記載されているsurefireプラグイン here は、バグやエラーを分離するのに非常に適しています。