私は log4net を初めて使用するので、これは誰かにとって本当に簡単な質問であることを願っています。
私は Web アプリケーションで RollingLogFileAppender を使用して log4net を動作させています。ログ記録を使用して、パフォーマンスの問題の原因を特定しようとしています。これを行うには、ログ出力に ASP.NET SessionID を含めると便利です。これにより、特定のユーザーのログ エントリを確認できるようになります。
conversionPattern
アペンダーの設定を通じてこれを行う方法はありますか?%property{??}
使用できる設定はありますか?
更新: この質問にはまだ回答がありません。誰か何かアイデアをお持ちですか?
ベストアンサー1
Alexander K. はほぼ正しいです。唯一の問題は、PostAcquireRequestState
イベントが静的リクエストでも発生することです。この状況で Session を呼び出すと、 が発生しますHttpException
。
したがって、正しい解決策は次のようになります。
protected void Application_PostAcquireRequestState(object sender, EventArgs e)
{
if (Context.Handler is IRequiresSessionState)
{
log4net.ThreadContext.Properties["SessionId"] = Session.SessionID;
}
}