23
|
Chris Roberts · 技术社区 · 16 年前 |
![]() |
1
20
亚历山大K几乎是正确的。唯一的问题是
因此,正确的解决方案是:
|
![]() |
2
14
更新(2014-06-12):
从log4net 1.2.11开始,您可以使用
参考文献: https://issues.apache.org/jira/browse/LOG4NET-87 http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html 您应该在global.asax.cs中创建application_postcquirerequeststate处理程序(在每个请求中都会调用它):
并将[%property{sessionid}]添加到conversionpattern。 |
![]() |
3
5
如果我错了,有人会纠正我,但是一个asp.net线程可以处理多个会话,因此您不能使用会话启动,因为会话启动时会调用一次会话启动。这意味着,一旦不同的用户访问该网站,log4net.threadcontext可能会被新的用户信息覆盖。 您可以将下面的代码放入application_acquireistate中,或者创建一个httpmodule并在acquireistate方法中执行此操作。当ASP.NET运行时准备好获取当前HTTP请求的会话状态时,调用AcquirerEquestState。如果您对获取用户名感兴趣,可以在AuthenticateQuest中执行此操作,AuthenticateQuest是在ASP.NET运行时准备对用户身份进行身份验证时(并且在收单机构请求状态之前)引发的。
之后,您可以像这样设置log4net.config(或在web.config中)。
希望这有帮助! |
![]() |
4
5
我也在找答案,结果发现
|
![]() |
5
1
你可以试试:
…在web.config和global.asax.cs中:
|
![]() |
jvoigt · Log4net文件滚动文件不删除旧文件 6 年前 |
![]() |
War · WPF应用程序中的Log4Net设置 6 年前 |
![]() |
Kamsiinov · Log4net没有记录任何内容 6 年前 |
![]() |
Aamir · 如果服务连续运行数天,如何每天创建新的log4net 7 年前 |
![]() |
rkralston · 另一个记录器中的.Net核心ELMAH功能? 7 年前 |