log4net - 使用 ASP.NET 请求用户进行Log4net日志项

  显示原文与译文双语对照的内容

我的ASP.NET 站点正在使用集成身份验证,并且已经关闭模拟。 在 Web.Config 中添加了一个"%username"到"ConversionPattern",以便将用户名添加到每个日志记录项。 但是,这将使用标识名的应用程序池用户,而不是用户当前访问名。

关于如何做到最好的任何想法? 我必须编写自定义附加程序? 我不介意任何轻微的性能惩罚,因为这是一个小型的内部网网站。 谢谢!

时间: 原作者:

你可能想看的另一个( 更容易) 解决方案是使用 ThreadContext 类( 以前实现为 MDCNDC 类) 。 你可以在 HttpModule ( 。请求到达你的页面之前) 或者其他任何位置,在记录第一条消息之前,使用类似的方式:


ThreadContext.Properties["user"] = username;



然后在你的conversionPattern中包含以下内容:

 
%property{user}



 
原作者:
...