1

クライアントがクライアント JAR のログ レベルを制御できるようにしたいと考えています。これを行う最善の方法は何ですか?

現在、System.out に書き込むログ ステートメントはほんの一握りです。Log4J を使用するとこの問題が解決することはわかっていますが、最大のクライアントの 1 つは Log4J を使用せず、独自のカスタム ロギング実装を使用しています。クライアント jar でログを制御できるようにするクリーンな方法はありますか?

私たちが考えたオプション: クライアントは、クライアント jar クラスのプロパティを明示的に設定して、ログ レベルを設定できます (これは望ましくありません)。クライアント jar は、クライアントがクラスパスに配置できるオプションの .properties ファイルを読み取ることができます (より良いですが、それでもちょっと痛い)。

4

2 に答える 2

5

具体的なロギングフレームワークを使用せず、SLF4Jを使用してください。そうすれば、必要に応じてロギングを交換できます。まず、独自のSystem.outを付属のjava.util.loggingに変換することから始めます。それは非常に簡単で、ほとんどのニーズに便利です。

クライアントが別のロギングフレームワークを使用している場合は、slf4jへのブリッジが存在するか、独自のフレームワークを作成できます。

編集:LOG4Jを使用した外部ライブラリの使用するjava.util.loggingへのロギングを合理化するために使用しました。

于 2009-12-02T05:27:50.847 に答える
2

Apache commons-logging を見てください。コードで一貫した API を使用し、下位層のロガー (Log4J などを含む) をプラグインできる薄い分離レイヤーを提供します。

于 2009-12-02T03:17:56.517 に答える