2017-05-12 19 views
1

log4j2では、Configuration要素の属性はmonitorIntervalです。この属性のパフォーマンスへの影響については読んでみましたが、どこにもソースが見つかりませんでした。だから、私はmonitorInterval属性に関する複数の質問があります。Log4j2 monitorIntervalの性能

  1. 私はそれが5(5秒)として小さな値を指定することで、持っているもの、パフォーマンスへの影響、知っていただきたいと思いますし、大きな値がのがConfiguration要素で3000(5分)として言わせて?

  2. 正確にはどうなりますか?つまり、指定された時間間隔が経過するたびに自動的に検出されますか?

  3. は、構成ファイル(XML、JSON、YAML、PROPERTIES)ではなく、プログラム的な再構成を経て、すぐに設定をリロードするをlog4j2を強制する方法はありますか?

答えて

2

これは、パフォーマンスの影響が小さい場合でした。具体的には、Log4j2は、ログイベントを処理するときに時々lastModified設定ファイルの時刻をチェックします。前回チェックしてから十分な時間が経過したときにのみ、毎晩monitorInterval秒ごとに1回だけ、それを行うのは賢明ではありませんでした。

Log4j 2.5とは異なります。ウォッチャーのバックグラウンドスレッドがあり、時々起き上がり、設定ファイルの時刻がlastModifiedになることがあります。だから、ロギングのパフォーマンスに影響はありません。 (この変更の理由は実際にはパフォーマンスではなく、正確さでした。以前のファイルは、何かがログに記録されるまでロールオーバーされませんでした。ロールオーバー時間よりもずっと遅くなる可能性があります)。詳細はhttps://issues.apache.org/jira/browse/LOG4J2-1202を参照してください。

強制的にコンフィギュレーションの再ロードを行うには、コンフィギュレーションファイルとプログラムによる再構成に触れて、JMXインタフェースを使用します。 log4j-coreのConfiguratorクラスも見てください。再構成をもたらすいくつかの方法があります。