私はロギングファサードとしてSLF4Jを使用しており、ユーザーはどこでログをとるのかを決めることができます。クラッシュが発生した場合、デバッグ情報を含むファイルをサーバに送信します。これは基本的にログファイルを意味します。そして、私たちはすでにコードに散らばっているすべてのログステートメントを持っているので、それらを使わないのはなぜですか?slf4jロギングを受信する方法と、バックエンドのロギングに依存しない方法はありますか?
だから基本的に、私はまだ彼自身のロギングバックエンドや構成にプラグインすることができ、ユーザのための透明SLF4Jを経由して、プログラムでログファイルを、作成したいです。
私の最初のアイデアは、ユーザが設定したロガーへのロギングと、その後デリゲートを行い、ロガーの私の独自の実装を提供し、org.slf4j.impl.StaticLoggerBinder
を実装することでした。しかし、私はこれに関するいくつかの問題を見ています。ユーザーが通常のロギングバックエンドを置く場合、org.slf4j.impl.StaticLoggerBinder
の複数のインスタンスがクラスパス上にあります。これにより警告が表示され、私の実装が呼び出されることを確認することができない場合があります。
がこれまでより良い解決策はありますか?全く異なるアプローチ?アイデアは本質的に悪いですか?これを達成する方法は?
私はあなたの最初の点に完全に同意します。しかし、このアプリケーションは、エンドユーザー用と、開発者向けのAPIを他のアプリケーションに含めるための2つの方法で使用できます。 APIとして使用されても、私はまだアプリのログのコピーを持っていたいと思いますし、この機能のために2つの異なるバージョンを使用しないようにしたいと思います。 – roesslerj
@roesslerjこれは質問自体に編集したいと思うかもしれない詳細です。 –