Как включить ведение журнала IP-адресов с помощью Log4Net

Я ищу способ включения ведения журнала IP-адресов с помощью log4net в ASP.NET. Я нашел одно решение, но оно работает на уровне приложения. Любые предложения/методы регистрации IP на уровне сеанса?

Спасибо

Ответы

Ответ 1

В Application_BeginRequest, do

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

а затем убедитесь, что ваш PatternLayout содержит %X{addr} где-то в строке шаблона.

Обновление: Как отметил Тадас, в более новых версиях log4net эквивалент

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

в сочетании с %P{addr} в строке шаблона.

Ответ 2

С log4net 1.2.11 (октябрь 2011) вы добавляете следующее к шаблону шаблона:

%aspnet-request{REMOTE_ADDR}

Или для текущего пользователя:

%aspnet-request{AUTH_USER}

Подробнее о новых преобразователях шаблонов asp.net см. https://issues.apache.org/jira/browse/LOG4NET-87 (% aspnet-cache,% aspnet-context и% ASPnet-запрос).