定義されたログレベルが発生した場合にのみ記録されるlog4jでログスタックを作成することが可能かどうか疑問に思っていました。 例: 本当に大きなログファイルがあり、ユーザーがこのエラーにどのように遭遇したかを知るためには、多くログを記録する必要があります。 しかし、エラーが発生した場合にのみ、この情報が必要です。log4jでjavaにエラーが発生した場合は、どのログレベルでもログできますか?
これをlog4jで処理する方法はありますか?
定義されたログレベルが発生した場合にのみ記録されるlog4jでログスタックを作成することが可能かどうか疑問に思っていました。 例: 本当に大きなログファイルがあり、ユーザーがこのエラーにどのように遭遇したかを知るためには、多くログを記録する必要があります。 しかし、エラーが発生した場合にのみ、この情報が必要です。log4jでjavaにエラーが発生した場合は、どのログレベルでもログできますか?
これをlog4jで処理する方法はありますか?
残念ながら、log4jでログスタックを作成し、後で(エラーが発生した場合)実行することを選択した場合にのみログインできるようにする、すぐに使用できるメカニズムはありません。
しかし、Filter
(はい、あなた自身がアクティブになっている)によってこのような機能を実装できます。フィルタは、スタックをクリアする必要があることを検出し、新しいスタックを開始するまで(スタックをクリアする必要があることを検出するまで)、バッファにメッセージをスタックする(スレッドローカルでなければならないか、スタックをコンテキストにリンクする必要があります。新しいユーザー要求)、エラーが発生してスタックをログにフラッシュする必要があることを示します。
ありがとうございます、私はすでにそれを想定していましたが、確信していました – antii