NLog:强制BufferingTargetWrapper在AppDomain UnhandledException上清空
我在我的应用程序中配置了NLog,以使用BufferingTargetWrapper
通过MailTarget
发送电子邮件。
我遇到的问题是在应用程序退出Unhandled Exceptions之前,我找不到强制NLog清空BufferingTargetWrapper
的方法。
我尝试从当前应用程序域的UnhandledException事件调用LogManager.Flush()
和LogManager.DisableLogging()
但它没有缝合工作。
我需要做些什么才能发送电子邮件?
你可以调用BufferingTargetWrapper并强制它写日志。 奇怪的是LogManger.Flush不起作用。
var buffWapper = LogManager.Configuration.FindTargetByName("BufferingTargetWrapper") as BufferingTargetWrapper; if (buffWapper != null) buffWapper.Flush();
要么
var buffWapper = LogManager.Configuration.FindTargetByName("BufferingTargetWrapper") as BufferingTargetWrapper; if (buffWapper != null) { buffWapper.BufferSize = 1; buffWapper.Flush(); }