現在、Restlet を使用して Web サービスを作成しており、log4j の前に slf4j でログを記録しています。現在、ファイルにログを記録するための標準の log4j アペンダーを用意しています。私がやろうとしていたことは、カスタム Appender を使用して、HTTP 応答にログ出力を含めることです。
私が見ている問題は、デフォルトではアペンダーが作成中のリクエストのコンテキストにアクセスできないことです。理論的には、非同期アペンダーが実行される前にリクエストが終了する可能性があるため、これは理にかなっています。おそらく Appender を同期させ、ログ呼び出しで Response オブジェクトを渡すことによって、これが可能かどうかについてはまだ興味があります。log4j がこれをサポートする方法が見つかりません。logback のような別のフレームワークはありますか? パフォーマンスへの影響があるため、必ずしもこの方法を最終的に使用するわけではありませんが、それでも興味があります。
参考までに、私の現在の回避策は、応答にエントリを追加し、標準のログ記録のために slf4j メソッドを呼び出すカスタム ログ メソッドです。これの欠点は、カスタム メソッドを使用する必要があることです。また、自分が制御するコードのログ エントリしか取得しません (使用しているライブラリは、Appenders のみを使用しており、Response にログが記録されません)。