Wie man den aktuellen Benutzernamen anstelle der "AppPool" - Identität in einem logfile mit Log4Net
Sind wir mit Log4Net von unserer ASP.NET MVC3-Anwendung, die alle funktioniert gut, aber wir sehen möchten der aktuelle Benutzername anstatt der Anwendungspool-Identität in den log-Dateien, dies ist der appender Konfiguration benutzen wir:
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<threshold value="ALL" />
<immediateFlush>true</immediateFlush>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<encoding value="utf-8" />
<file value="C:\Logs\MyLogs.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="30" />
<maximumFileSize value="25MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%property{log4net:HostName}] - %username%newline%utcdate - %-5level - %message%newline" />
</layout>
</appender>
<root>
<priority value="ALL" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
So scheint es, die Immobilie: %username
ist das abrufen des Werts:
WindowsIdentity.GetCurrent().Name
Statt, was wir brauchen würden: HttpContext.Current.User
Jede Idee, wie wir dieses Problem lösen Sie leicht im web.config ohne das erstellen von benutzerdefinierten Eigenschaften oder zusätzliche log4net abgeleiteten Klassen? Wenn überhaupt möglich ansonsten, wenn die benutzerdefinierte Eigenschaft ist der einzige Weg, damit können wir Leben denke ich 🙂 danke!
- Sie können dieses über ein appender-Muster in Log4Net, version 1.2.11. Siehe stackoverflow.com/a/26277219/203371
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersetzen
%username
durch%identity
sollte es tun. Es ist für mich arbeiten in meinem aktuellen Projekt.Erfahren Sie mehr über log4net mit diese hervorragende tutorial