Как зарегистрировать IP-адрес клиента, имя браузера и имя пользователя с помощью Log4net в asp.net?

1

Я хочу зарегистрировать IP-адрес клиента, имя браузера и имя пользователя, прошедшего проверку подлинности Windows, используя библиотеку log4net.

Я пытаюсь таким образом, но не работает.

Поэтому, пожалуйста, помогите мне.

Основная проблема заключается в том, что я не знаю, как добавить несколько настраиваемых свойств в log4net.

Пожалуйста, помогите мне.

Код сервера.

log4net.GlobalContext.Properties["Hostname"] = GetIP();
            log4net.GlobalContext.Properties["Browser"] =  HttpContext.Current.Request.Browser.Type;
            log4net.GlobalContext.Properties["username"] = HttpContext.Current.Request.LogonUserIdentity.Name;

Настройка Web.Config:

<conversionPattern value="%date %property{Hostname, username, Browser} [%thread]&#xD;&#xA;          %-5level %logger - %message%newline"
                                           />

Если требуется какая-либо другая настройка, пожалуйста, дайте мне знать.

Или есть другой способ сделать это, пожалуйста, дайте мне знать.

  • 0
    Я думаю, что вы должны использовать ThreadContext вместо GlobalContext, чтобы один поток не перезаписывал значения другого и в результате записывал неверную информацию.
Теги:
web-config
log4net

2 ответа

1
Лучший ответ

Чтобы дать вам более "элегантное" решение для этого: используйте ndc.

<conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />

используя вложенный диагностический контекст в коде (NDC):

using(log4net.NDC.Push("["+GetIP() + " - " + HttpContext.Current.Request.Browser.Type + " - " + HttpContext.Current.Request.LogonUserIdentity.Name+"]")
{
    //your code
    //all log messages will contain the ndc string with the using.
}
0

Это можно сделать таким образом, Это полезно для других.

<conversionPattern value="%date [%property{Hostname}] [%property{UserName}] [%property{Browser}] [%property{WindowsLogin}] [%thread]&#xD;&#xA;          %-5level %logger - %message%newline"
                                           />

Ещё вопросы

Сообщество Overcoder
Наверх
Меню