2013-10-03 9 views
5

Ich unterstütze eine große, alte Anwendung. Der Code verwendet NLog sowie Debug.WriteLine und Trace.WriteLine. Ich versuche, die Debug.WriteLine und die Trace.WriteLine in die Nlog-Datei umzuleiten. Damit ist alles an einem Ort. Momentan befinden sich einige im Ausgabefenster und einige in der Protokolldatei.Wie System.Diagnostics.Trace und System.Diagnostics.Debug Nachrichten zu NLog-Datei protokollieren?

I followed this article to use the NLogTraceListener

Dieser Artikel hat System.Net und System.Net.Sockets in die Protokolldatei abgeschoben zu werden. Ich habe es versucht und es funktioniert. Ich sehe System.Net und System.Net.Sockets Nachrichten werden in der Datei protokolliert. This SO article beschreibt das gleiche - und es funktioniert.

Was nicht funktioniert, ist die Protokollierung meiner eigenen Nachrichten aus meinen eigenen Namespaces und Klassen in die Protokolldatei.

System.Diagnostics.Debug.WriteLine("This won't end up in the log file"); 
System.Diagnostics.Trace.WriteLine("This won't end up in the log file"); 

Ich habe versucht, die Quellennamen zu Namespaces von meiner App zu ändern. Hat nicht funktioniert. Ich kann meine eigenen WriteLines nicht erhalten, um in die Datei zu loggen. Sie werden weiterhin in dem Visual Studio-Ausgabefenster angezeigt.

Zum Beispiel:

<system.diagnostics> 
     <sources> 
      <source name="MyAppNamespace" switchValue="All"> 
       <listeners> 
        <add name="nlog" /> 
       </listeners> 
      </source> 
     </sources> 
     <sharedListeners> 
      <add name="nlog" type="NLog.NLogTraceListener, NLog" /> 
     </sharedListeners> 
    </system.diagnostics> 

Die explizite NLog Anrufe ganz gut in die Protokolldatei protokollieren:

NLog.LogManager.GetCurrentClassLogger().Trace("This Works"); 

Antwort

12

Sie einen TraceSource konfiguriert haben, um NLog einzuloggen, aber Ihre Anweisung trace isn Verwenden Sie diese TraceSource nicht.

Versuchen:

<system.diagnostics> 
    <trace> 
     <listeners> 
      <add name="nlog" type="NLog.NLogTraceListener, NLog" /> 
     </listeners> 
    </trace> 
</system.diagnostics> 

Oder verwenden Sie die Trace Sie konfiguriert haben, z.B .:

TraceSource source = new TraceSource("MyAppNamespace"); 
source.TraceEvent(TraceEventType.Warning, 2, "File Test not found"); 
Verwandte Themen