如何使用Log4Net在日志文件中获取当前用户名而不是AppPool标识

我们正在使用ASP.NET MVC3应用程序中的Log4Net,一切正常但我们希望在日志文件中看到当前用户名而不是应用程序池的标识,这是我们使用的appender配置:

   true                  

所以看起来像属性: %username正在检索值:

 WindowsIdentity.GetCurrent().Name 

而不是我们需要的: HttpContext.Current.User

如何在web.config中轻松解决这个问题,而无需创建自定义属性或其他log4net派生类? 如果可能的话,如果定制属性是我们可以忍受的唯一方式,我猜:)谢谢!

%identity替换%username应该这样做。 它在我目前的项目中对我有用。

您可以通过这个优秀的教程了解有关log4net的更多信息