Как включить ведение журнала 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-запрос).