我试图弄清楚为什么NLog记录我的错误两次 .
这是我的配置文件:
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="debug" xsi:type="File" FileName="DebugTestFile.log" layout="${message} ${exception:format=tostring}" />
</targets>
<rules>
<logger name="*" level="Debug" writeTo="debug" />
</rules>
</nlog>
现在,当我调用 NLog.Debug(myException);
输出是我的异常被打印两次 .
如果我调用 NLog.Debug(myException, "My Test Message String");
,那么错误将与我的测试消息一起打印出来 .
我究竟做错了什么?根据https://github.com/NLog/NLog/wiki/How-to-Log-Exceptions我的配置是正确的 .
我尝试将我的布局更改为以下内容: layout="${message}
,当我运行 NLog.Debug(myException);
时,它只打印错误一次 .
但是现在当我运行 NLog.Debug(myException, "My Test Message String");
时它只打印了我的消息而没有来自异常的错误 .
这可能是NLog的错误吗?
2 回答
如果您在AspNetCore中使用NLog,则可以通过与
AddNLog
或ConfigureNLog
一起调用_2688865来引起问题 .你应该只使用
UseNLog
和NLog.Web.LogBuilder.ConfigureNLog
(停止使用AddNLog
):https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2#4-update-programcs
这似乎是因为配置文件中的规则,只需更改每个 Logger 的writeTo,在我的情况下,我能够通过以下相同的步骤来解决此问题:
Example:
早期的配置文件有问题:
更正了配置文件: