Skip to main content
 首页 » 编程设计

asp.net之如何在 ASP.NET 中使用 log4net 在日志文件中包含 SessionID

2024年11月24日11xing901022

我是 log4net 的新手,所以希望这对某人来说是一个非常简单的问题?!

我已经让 log4net 与我的 Web 应用程序的 RollingLogFileAppender 一起工作。我正在使用日志记录来尝试找出一些性能问题的来源。为了做到这一点,在日志输出中包含 ASP.NET SessionID 会很有用,这样我就可以确保我正在查看特定用户的日志条目。

有什么办法可以通过 conversionPattern 做到这一点吗?附加程序的设置?有没有%property{??}我可以使用的设置?

更新:这个问题仍然没有得到回答 - 有没有人有任何想法?

请您参考如下方法:

Alexander K. 几乎是正确的。唯一的问题是 PostAcquireRequestState静态请求也会发生事件。在这种情况下调用 Session 将导致 HttpException .

因此,正确的解决方案变为:

protected void Application_PostAcquireRequestState(object sender, EventArgs e) 
{ 
    if (Context.Handler is IRequiresSessionState) 
    { 
        log4net.ThreadContext.Properties["SessionId"] = Session.SessionID; 
    } 
}