【问题标题】:NLog logs Error twice in same fileNLog 在同一个文件中记录两次错误
【发布时间】:2015-11-09 16:44:58
【问题描述】:

我试图弄清楚为什么 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 的错误吗?

【问题讨论】:

  • 这似乎是设计的。您正在传递一个用于满足两个布局渲染器的参数(您的例外)。
  • @Joe 但是,如果我从配置中删除错误,则在调用异常字符串方法时不会打印出错误。这不可能是正确的,一定是我遗漏了什么或者系统中的错误。
  • @Bagzli 这个问题你解决了吗?
  • 不,我没有,我采用了一种解决方法,我打电话给NLog.Debug(myException, myMessage);,但它没有这样做,我的消息是一个空字符串。

标签: nlog


【解决方案1】:

如果您在 AspNetCore 中使用 NLog,则问题可能是通过同时调用 UseNLogAddNLogConfigureNLog 引起的。

您只能将UseNLogNLog.Web.LogBuilder.ConfigureNLog 一起使用(停止使用AddNLog):

https://github.com/NLog/NLog/wiki/Getting-started-with-ASP.NET-Core-2#4-update-programcs

【讨论】:

  • 我就是这种情况。
  • 注意:AddNLog 用于 ASP.NET Core 1,UseNLog 用于 ASP.NET Core 2 + 3
  • 第一部分是答案,但是在某些情况下不应使用 UseNLog,例如当您有 Microsoft ILogger 的自定义实现时(并且您在幕后使用 NLog)。在这种情况下,您将通过 Asp.Net 核心管道中的 loggerFactory.AddProvider 添加自定义日志记录提供程序
  • @MahdiK.Actually 认为在实施这些拉取请求后答案已经过时:github.com/NLog/NLog.Web/pull/459 + github.com/NLog/NLog.Web/pull/485(与 NLog.Web.AspNetCore 版本 4.9 一起发布)
【解决方案2】:

这似乎是因为配置文件中的规则,只需更改每个记录器的 writeTo,就我而言,我可以通过以下相同步骤解决此问题:

示例:

早期的配置文件有问题:

<rules>
  <logger name="*" minlevel="Info" writeTo="console" />
  <logger name="*" minlevel="Error" writeTo="console" />
</rules>

更正的配置文件:

<rules>
  <logger name="*" minlevel="Info" writeTo="console" />
  <logger name="*" minlevel="Error" writeTo="console1" />
</rules>

【讨论】:

  • 请注意,我的配置文件中只有一条规则
猜你喜欢
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多