1. ホーム
  2. java

[解決済み] java.util.loggingをlog4jに送信する方法とは?

2023-06-07 06:01:06

質問

私は、log4jに対してそのすべてのロギングを行う既存のアプリケーションを持っています。我々は、どちらかまたlog4jを使用するか、またはCommons Loggingに対してログを記録する他のライブラリの数を使用して、それは我々の環境のカバーの下でlog4jを使用して終わります。私たちの依存の1つは、それが最終的に同様にlog4jに委ねるので、slf4jに対してさえログを取りますが、それもうまく動作します。

今、私は、いくつかのキャッシュの必要性のために、このアプリケーションにehcacheを追加したいと思います。ehcacheの以前のバージョンはcommons-loggingを使用し、それはこのシナリオで完全に動作しただろう、しかし、現在のところ バージョン 1.6-beta1 では、commons-logging への依存を取り除き、代わりに java.util.logging に置き換えたのです。

java.util.loggingで利用可能な組み込みのJDKロギングに本当に精通していない、JULに送られたすべてのログメッセージをlog4jに対して記録させる簡単な方法はありますか、それで私は私の既存の構成を使用し、ehcacheから来るすべてのロギングに対してセットアップできますか?

JUL の javadocs を見ると、私は環境変数の束をセットアップして、どの LogManager 実装が使用され、そしておそらくlog4jをラップするためにそれを使用することができるように見えます。 Logger をJULの Logger というクラスがあります。これは正しいアプローチなのでしょうか?

世界の(ほとんどの)残りは代わりにサードパーティライブラリを使用しているのに、JDK内蔵のロギングを使用するライブラリがこのような頭痛の種になるとは皮肉なものです。

どのように解決するのですか?

私がうまく使っている方法のひとつは slf4j を私の主要なロギングAPIとして使用することです。 そして、私は、slf4jをlog4jにバインドさせます。 他のフレームワーク(JULのような)を使用するサードパーティの依存関係は、次のようになります。 ブリッジ をslf4jに接続することができます。