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

时间:2009-08-27 12:06:08

标签: asp.net logging log4net

我正在寻找一种在ASP.NET中使用log4net启用IP日志记录的方法。我发现了一个solution,但它适用于应用程序级别。有关如何在会话级别记录IP的任何建议/实践吗?

由于

2 个答案:

答案 0 :(得分:19)

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

%aspnet-request{REMOTE_ADDR}

或者对于当前用户:

%aspnet-request{AUTH_USER}

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

答案 1 :(得分:18)

Application_BeginRequest中,执行

MDC.Set("addr", Request.UserHostAddress);

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

更新:正如Tadas指出的那样,在较新版本的log4net中等效的是

ThreadContext.Properties["addr"] = Request.UserHostAddress;

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