我希望NLog在数据库目标连接失败时抛出异常并传递给我的应用程序。
这是我的NLog配置文件:
<nlog autoReload="true"
throwExceptions="true"
internalLogLevel="Debug" internalLogFile="c:\temp\nlog-internal.log">
现在,当配置文件中存在错误时,它会在配置时抛出运行时异常。此外,它还会记录有关内部日志文件中连接失败的异常,但它不会将异常返回给调用应用程序。
我还尝试在try-catch
中包装Logger.Log方法,以确保它不会吞下它,但Logger.Log语句已成功执行。
还有什么可以在应用程序中捕获异常。我只想准备一个没有记录的日志事件缓存,然后在连接再次可用时重新登录到SQL Server。
编辑:
LogManager.ThrowException
是真的
也是运行时间。答案 0 :(得分:2)
Write
的{{1}}方法包含在try / catch中,只会重新抛出特定类型的异常(DatabaseTarget
,StackOverflow
,{{1} }和ThreadAbort
)。如您所知,其他例外情况只会写入内部日志。
实现一个custom target并将其子类化并覆盖此方法(如果这是一个选项)将是相当简单的。
OutOfMemory