Я хочу зарегистрировать 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]
 %-5level %logger - %message%newline"
/>
Если требуется какая-либо другая настройка, пожалуйста, дайте мне знать.
Или есть другой способ сделать это, пожалуйста, дайте мне знать.
Чтобы дать вам более "элегантное" решение для этого: используйте 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.
}
Это можно сделать таким образом, Это полезно для других.
<conversionPattern value="%date [%property{Hostname}] [%property{UserName}] [%property{Browser}] [%property{WindowsLogin}] [%thread]
 %-5level %logger - %message%newline"
/>