元のタイトル:Apache LogFactoryに常に同じログ実装を返すようにするにはどうすればよいですか?
さまざまな場所に移動するように構成された、かなりの数のさまざまなロガーを使用するプロジェクトがあります。単体テストを実行しているときに、自分でインスタンス化するSimpleLoggerでそれらすべてをオーバーライドしたいと思います。これをLogFactoryに設定して、単体テストで常に返されるようにするにはどうすればよいですか?
私は実際には外部構成ファイルを扱いたくありません。
少し背景として、私はロガーが信頼できないことで悪名高いと思います。実際にはロガーではありません。ロガーを構成して出力をフィルタリングする方法はたくさんあります。さまざまな構成ファイルから、またはコード内のどこからでも実行でき、さまざまな場所に送信できます。ロガーは、構成に基づいて、ある種の出力(エラー)を他の場所とは異なる場所に送信することもできます。
これは非常に素晴らしく強力ですが、実際に呼び出されているのに出力がリダイレクトされているのに、なぜコードが呼び出されないのか疑問に思う6時間かかると、すべて元に戻されます。
テストを実行するときは、すべての出力が表示されていることをできるだけ確認したいので、すべてのログをコンソールにリダイレクトします。(すべて、私の現在のプロジェクトのように、6つのディレクトリにまたがる数十の異なるログファイルを作成できます。)