加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 18:43:03 所属栏目:asp.Net 来源:网络整理
导读:我是新来的log4net,所以希望这是一个非常容易的问题给某人? 我已经有log4net与我的Web应用程序的RollingLogFileAppender一起使用。我正在使用日志记录来尝试找到某些性能问题来自哪里。为了做到这一点,将ASP.NET SessionID包含在日志输出中是非常有用的,
我是新来的log4net,所以希望这是一个非常容易的问题给某人?

我已经有log4net与我的Web应用程序的RollingLogFileAppender一起使用。我正在使用日志记录来尝试找到某些性能问题来自哪里。为了做到这一点,将ASP.NET SessionID包含在日志输出中是非常有用的,以便我可以确保查看特定用户的日志条目。

有没有办法,我可以通过转换模式为appender设置?是否有可以使用的%属性{??}设置?

更新:这个问题还没有得到回答 – 有人有什么想法吗?

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读