2012-05-04 6 views
1

Logbackが別のスレッドを使用してlog4jのような構成ファイルを監視してシャットダウンの問題を回避していると聞きました。しかし、私は彼らがどのようにそれを意味するかについて話している物質は見つけられませんでした。 2007年に戻ってログバックメールリストにいくつかの議論があります。誰でもそのメカニズム、プロ&否定について話しているいくつかの資料を指すことができますか?ありがとうlogbackが設定ファイルを監視する仕組み

+0

少し掘り下げましたが、すべてが見つかりませんでした。しかし、ここから始めるのが良いでしょう。](https://github.com/ceki/logback/blob/master/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ ConfigurationWatchList.java) –

答えて

2

すべてのログ呼び出しをラップするTurboFilterを使用します。 16回のロギングコールごとにタイマーが経過しているかどうかがチェックされ、タイマーが満了している場合は、設定ファイルが変更のためにチェックされます。

したがって、ログメソッドの呼び出しでわずかな時間を奪って別のスレッドを回避します。

+0

私が理解しているように、log4jのファイルウォッチドッグスレッドは、アプリケーションenvで問題を引き起こす可能性があります。だから、pojoプログラムではまだ安全だと思いますよね? – ying

+0

それはすべてのスレッドを停止することです。デーモンスレッドの場合は、普通のJavaアプリケーションで安全です。 –

+0

ありがとう、@ marko-topolnik。私はログバックに関するフォローアップの質問があります。あなたの応答を感謝します。私は2つのenv env1を持っています:呼び出し元のログを直接起動します。 env2:キューのデカップル・ログ・コール元とスレッドのスレッド。 log文は大文字小文字の場合があります。log.debug( "this is%s"、s);ケース2. log.debug(s);ログガードなしでは、上記のいずれの場合でもlogbackメソッドスタックを呼び出す前に引数文字列 "s"を評価することはできません。これは、単一のJVMでヒープを共有するためですか? – ying