Ich benutze log4net, um eine Protokolldatei in eine laufende Protokolldatei zu schreiben.Wie protokolliert man Trace-Nachrichten mit log4net?
Jetzt würde ich auch alle Trace-Nachrichten von System.Diagnostics.Trace
in diese Protokolldatei umleiten. Wie kann ich das konfigurieren? Ich habe versucht, etwas darüber in der log4net-Dokumentation zu finden, aber ohne Erfolg. Ist es überhaupt möglich?
Der Grund, warum ich das tun möchte, ist, weil ich an den Trace-Nachrichten einer 3rd-Party-Bibliothek interessiert bin.
<log4net>
<appender name="R1" type="log4net.Appender.RollingFileAppender">
<file value="C:\Logs\MyService.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<maxSizeRollBackups value="10" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</log4net>
+1 für die Antwort oben. Ich würde vorsichtig sein, wenn log4net auch eingerichtet ist, um auf einen TraceAppender zu schreiben. Ich habe das nicht wirklich getestet, aber Sie könnten in einer Situation enden, in der Trace in log4net schreibt und log4net in Trace schreibt, was zu einer Endlosschleife führt. Im obigen Beispiel könnten Sie dies mildern, indem Sie den TraceAppender in den Appendern für den Logger 'System.Diagnostics.Redirection' nicht einschließen. – Jimit
Da dies ein Trace-Listener ist, sollten Sie try/catch-Blöcke in den Write-Methoden implementieren, um sicherzustellen, dass ein Schreibversuch den Host niemals fehlschlägt. Ich habe Codeänderungen eingereicht, die die Konstruktion von Objekten korrigieren und den Code lesbarer machen und weniger wahrscheinlich ausfallen. –
@JYL Hier ist [ein aktualisierter Link zu diesem Blogpost] (http://www.geertvanhorrik.com/2010/06/18/log4net-tracelistener/). Es sieht jedoch so aus, als hätten sich einige Dinge im Zug verloren. Der XML-Code in diesem Post ist jetzt falsch und die Verbindung zum Log4netTraceListener funktioniert nicht. Hoffentlich wird der Autor den Code wiederbeleben. –