0

WAR ファイルから起動されたスタンドアロンの Jenkins サーバーを実行しています。Jenkins は、ロギングに java.util.logging フレームワークを使用していると宣伝しています。次のように起動します。

java -Djava.util.logging.config.file=mycustomlogging.properties -jar jenkins.war > jenkins.log

mycustomlogging.properties には以下が含まれます。

handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.level=WARNING
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

私が期待したのは、すべてのログが jenkins.log に記録され、WARNING 以上のメッセージのみがログに記録されることです。

jenkins.log の内容は予想どおりですが、INFO 以上の XML 形式のログ ステートメントを含むファイル ~/java0.log も作成されています。

mycustomlogging.properties で ConsoleHandler のみを指定し (FileHandler を指定しない)、java0.log が作成されるのはなぜですか?

私のプロパティファイルは、(おそらく) ~/java0.log に書き込む FileHandler を構成するデフォルトのシステムファイルと「マージ」されていますか? 私の予想では、カスタム プロパティ ファイルを指定すると、デフォルトのシステム動作が完全にオーバーライドされます。

それとも、システム プロパティを無視し、「何があっても」~/java0.log にログを記録するようにサーバー コードが記述されている可能性がありますか?

問題があれば、Java 7 を使用して OS X 10.10 を使用しています。

4

1 に答える 1

0

mycustomlogging.properties で ConsoleHandler のみを指定し (FileHandler を指定しない)、java0.log が作成されるのはなぜですか?

プロパティ ファイルが見つからなかったか、LogManager.reset() または LogManager.readConfiguration(InputStream) を実行するコードによって構成が破棄された可能性があります。

私のプロパティファイルは、(おそらく) ~/java0.log に書き込む FileHandler を構成するデフォルトのシステムファイルと「マージ」されていますか?

デフォルトの LogManager とのマージはできません。FileHandler を直接作成および追加するコードが必要です。

それとも、システム プロパティを無視し、「何があっても」~/java0.log にログを記録するようにサーバー コードが記述されている可能性がありますか?

はい。LogManager.reset は構成を破棄します。

LogManager.reset() を呼び出すようにGroovy Hook Scriptを構成してから、ConsoleHandler をインストールしてみてください。これは、Jenkins logging wikiで説明されています。

于 2014-11-12T18:10:07.683 に答える