如何通过.NET Core中的NLog路由System.Diagnostics.TraceSource日志

无论如何通过.NET Core中的NLog路由System.Diagnostics.TraceSource日志?使用NLog for .Net 4.5,我们可以在app.config文件中设置NLog.NLogTraceListener,如在
http://nlog-project.org/2010/09/02/routing-system-diagnostics-trace-and-system-diagnostics-tracesource-logs-through-nlog.html这篇文章中所述,但我们在.net core中没有app.config了.

我已经设置了使用TraceSource输出日志的库,我想将它路由到NLog目标.

欢迎提出建议.

谢谢!

最佳答案 到目前为止我找到的唯一方法是以编程方式进行.

根据https://msdn.microsoft.com/en-us/library/system.diagnostics.tracesource(v=vs.110).aspx的例子,

原始配置

<source name="System.Net" switchName="SourceSwitch" switchType="System.Diagnostics.SourceSwitch">
  <listeners>
    <add name="nlog" />
  </listeners>
</source>

看起来像这样:

static TraceSource ts = new TraceSource("System.Net");
SourceSwitch sourceSwitch = new SourceSwitch("SourceSwitch", "Verbose");
ts.Switch = sourceSwitch;
int idxConsole = ts.Listeners.Add(new NLog.NLogTraceListener());
ts.Listeners[idxConsole].Name = "nlog";

我不用NLog测试这个,但我有一个自定义跟踪监听器,它对我有用.

点赞