そこで、今日、興味深い問題に遭遇しました。サードパーティの jar を多数使用する Java EE Web アプリがあります。これには休止状態が含まれます。
ロギングの目的で、SDK に付属する Java ロギング API を使用します。通常、私たちはログ記録にかなり注意を払っていますが、log4j を使用して独自のログ ファイルを作成するサード パーティの jar の 1 つでこの問題に遭遇しました。独自のコードからステートメントをログに記録しただけでなく、休止状態のコードのデバッグを書き始めた結果、3 GB 相当のログをすぐにログに記録するバッチ ジョブが発生しました。
これには2つの問題があります:
- このログの問題を修正する必要があります (可能であれば、サードパーティの jar の log4j 構成をヤンクアウトしたり、変更したりしたくありません)。サードパーティのjarファイルのlog4j構成を変更またはヤンクする以外に、サードパーティのjarファイルの構成を上書きする独自のlog4j構成を作成する以外に、これを行う良い方法はありますか? 2つのオプションのどちらも好きではありませんが、最善を尽くしたいと思っています。
- サードパーティのライブラリが楽しそうにログオフすることを期待するのは正しいことですか? これはデザインが悪いと思います。これについて、コミュニティの意見を聞きたいです。
サードパーティのライブラリでエラーをログに記録したい。そうは言っても、このサードパーティのjarが、担当するパッケージ以外のパッケージからDEBUGをログに記録するのは少し厄介だと思います。たとえば、私の場合、このサードパーティの jar は、休止状態のメソッドを呼び出していなくても、休止状態のデバッグをログに記録しています。実行したバッチ ジョブは、この jar で API を呼び出しませんでした。そこにあるものを自分のlog4j構成でオーバーライドするのが最善の方法のようです。