2009-06-23 15 views
18

Mamy aplikacji ASP .NET, dzięki czemu możemy użyć log4net do szczegółów logowania w aplikacji - nic nowego - i The Rolling nazwy plików dziennika są w zwykłym formacie:Niestandardowa nazwa pliku w toczącym się pliku dziennika Log4Net?

rolling-log.txt 
rolling-log.txt.1 
rolling-log.txt.2 etc. 

A każdy użytkownik aplikacji dodaje do pliku logu, plik logu może być trudny do odczytania dla konkretnego przypadku użytkownika, więc chcielibyśmy zmodyfikować plik konfiguracyjny w jakiś sposób, aby indywidualnie rejestrować dane dziennika użytkownika, z których każdy zapisuje do określonego pliku, np.

<applicationId>rolling-log.txt 
<applicationId>rolling-log.txt.1 
<applicationId>rolling-log.txt.2 
etc. 

gdzie jest niepowtarzalny identyfikator każdego użytkownika, składający się z pięciocyfrowej liczby, np.

12345rolling-log.txt 

Wszelkie pomysły na najlepszy sposób realizacji tego, zakładając, że jest to możliwe?

Cheers

Brett

Odpowiedz

14

wygląd Properties log4net Context ...

w kodzie:

log4net.GlobalContext.Properties["id"] = "12345"; 

następnie

log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo("configPath")); 

w pliku log4net config:

<file type="log4net.Util.PatternString" 
      value="%property{id}rolling-log.txt" /> 
1

Nie sądzę, że plik dziennika na użytkownika jest możliwe, ale można napisać niestandardowy warstwę pomiędzy log4net i aplikacji, które poprzedza identyfikator użytkownika przed zapisaniem do dziennika.

1

Możesz napisać niestandardowy układ, dziedzicząc z XmlLayoutBase.

8

Wierzę, że plik konfiguracyjny Log4Net obsługuje zmienne środowiskowe (np. USERNAME), a także konfigurowalne wzorce, które powinny dać ci to, czego potrzebujesz.

Zobacz "PatternString dla konfiguracji opartej na wzorach" w the Log4Net V1.2.10 release notes.

+0

+1 Jest to sposób, aby to zrobić. –

34
<file type="log4net.Util.PatternString"> 
    <conversionPattern value="C:\Logs\log-%date{ yyyy.MM.dd.HH.mm.ss}-[%processid].log" /> 
</file> 

from here

+0

Bardzo przydatne, up-voting. – Roylee

+1

N.B. Zastąp element '' powyższym. –

+0

dziękuję bardzo, dla ciebie – Zaragon

Powiązane problemy