如何使用Log4Net启用IP地址日志记录

Tad*_*kys 15 asp.net logging log4net

我正在寻找一种在ASP.NET中使用log4net启用IP日志记录的方法.我找到了一个解决方案但它适用于应用程序级别.有关如何在会话级别记录IP的任何建议/做法?

谢谢

Vin*_*jip 19

Application_BeginRequest,做

MDC.Set("addr", Request.UserHostAddress);
Run Code Online (Sandbox Code Playgroud)

然后确保您PatternLayout包含%X{addr}在模式字符串中的某个位置.

更新:正如Tadas所指出的,在较新版本的log4net中,等价物是

ThreadContext.Properties["addr"] = Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)

加上%P{addr}模式字符串.


Jac*_*cob 19

使用log4net 1.2.11(2011年10月),您可以在模式布局中添加以下内容:

%aspnet-request{REMOTE_ADDR}
Run Code Online (Sandbox Code Playgroud)

或者对于当前用户:

%aspnet-request{AUTH_USER}
Run Code Online (Sandbox Code Playgroud)

有关新的asp.net模式转换器(%aspnet-cache,%aspnet-context和%aspnet-request)的更多信息,请参阅https://issues.apache.org/jira/browse/LOG4NET-87.