I have NLog configured in my application to to use the BufferingTargetWrapper for sending emails with the MailTarget.
The problem I'm running into is I can not find a way to force NLog to empty the BufferingTargetWrapper before the application exits from Unhandled Exceptions.
I tried calling LogManager.Flush() and LogManager.DisableLogging() from the Current App Domain's UnhandledException Event but it does not seam to work.
What would I need to do to make it send the emails?
you can call the BufferingTargetWrapper and force it to write the logs. Its strange that the LogManger.Flush doesn't work.
var buffWapper =
            LogManager.Configuration.FindTargetByName("BufferingTargetWrapper") as BufferingTargetWrapper;
        if (buffWapper != null)
            buffWapper.Flush();
or
var buffWapper =
            LogManager.Configuration.FindTargetByName("BufferingTargetWrapper") as BufferingTargetWrapper;
        if (buffWapper != null)
        {
            buffWapper.BufferSize = 1;
            buffWapper.Flush();
        }
来源:https://stackoverflow.com/questions/2413299/nlog-force-bufferingtargetwrapper-to-empty-on-appdomain-unhandledexception