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(); }