我支持一個大型的舊應用程序。該代碼使用NLog以及Debug.WriteLine
和Trace.WriteLine
。我試圖將Debug.WriteLine和Trace.WriteLine重定向到Nlog文件。這樣一切都在一個地方。目前,有些位於輸出窗口,另一些位於日誌文件中。如何將System.Diagnostics.Trace和System.Diagnostics.Debug消息記錄到NLog文件?
I followed this article to use the NLogTraceListener
物品在System.Net和得到的System.Net.Sockets分流到日誌文件。我試了一下,它的工作原理。我看到System.Net和System.Net.Sockets消息被記錄到文件中。 This SO article描述了相同的 - 它的工作原理。
什麼不起作用將我自己的消息從我自己的命名空間和類記錄到日誌文件。
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");
我試過從我的應用程序更改源名稱到名稱空間。沒有工作。我無法讓我自己的WriteLines登錄到文件。它們仍然出現在Visual Studio輸出窗口中。
例如:
<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>
顯式調用NLOG正在登錄到日誌文件就好了:
NLog.LogManager.GetCurrentClassLogger().Trace("This Works");