ASP.NET で log4net を使用してログ ファイルに SessionID を含めるにはどうすればよいでしょうか? 質問する

ASP.NET で log4net を使用してログ ファイルに SessionID を含めるにはどうすればよいでしょうか? 質問する

私は 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;
    }
}

おすすめ記事