我支持一个大型的旧应用程序。该代码使用 NLog 以及Debug.WriteLine
和Trace.WriteLine
。我正在尝试将 Debug.WriteLine 和 Trace.WriteLine 重定向到 Nlog 文件。这样一切都在一个地方。目前,有些在“输出”窗口中,有些在日志文件中。
那篇文章有 System.Net 和 System.Net.Sockets 被分流到日志文件。我试过了,它有效。我看到 System.Net 和 System.Net.Sockets 消息被记录到文件中。 这篇 SO 文章描述了相同的内容——并且它有效。
不起作用的是将我自己的消息从我自己的命名空间和类记录到日志文件中。
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");