NLog不会抛出异常

时间:2015-11-09 19:06:11

标签: c# .net nlog

我希望NLog在数据库目标连接失败时抛出异常并传递给我的应用程序。

这是我的NLog配置文件:

<nlog autoReload="true"
      throwExceptions="true"
      internalLogLevel="Debug" internalLogFile="c:\temp\nlog-internal.log">

现在,当配置文件中存在错误时,它会在配置时抛出运行时异常。此外,它还会记录有关内部日志文件中连接失败的异常,但它不会将异常返回给调用应用程序。

我还尝试在try-catch中包装Logger.Log方法,以确保它不会吞下它,但Logger.Log语句已成功执行。

还有什么可以在应用程序中捕获异常。我只想准备一个没有记录的日志事件缓存,然后在连接再次可用时重新登录到SQL Server。

编辑:

  1. 我使用的是最新的NLog版本(v4.0)。
  2. 我也确认LogManager.ThrowException是真的 也是运行时间。

1 个答案:

答案 0 :(得分:2)

Write的{​​{1}}方法包含在try / catch中,只会重新抛出特定类型的异常(DatabaseTargetStackOverflow,{{1} }和ThreadAbort)。如您所知,其他例外情况只会写入内部日志。

实现一个custom target并将其子类化并覆盖此方法(如果这是一个选项)将是相当简单的。

OutOfMemory