Буферизация сообщений журнала в NLog и их ручная очистка для целевой

Я пытаюсь войти через NLog MailTarget. Он отлично работает , но я хотел обернуть mailtarget BufferedTargetWrapper для буферизации сообщений журнала до предопределенной кодовой точки, где я хочу вручную очистить буфер и отправить ранее буферизованные сообщения журнала одним письмом (как определено в адрес электронной почты).

Если я определю FlushTimeout или BufferSize из BufferedTargetWrapper , все будет работать нормально, как предполагалось. Но если FlushTimeout и BufferSize не установлен, я не могу заставить его работать.

Как ответил в этом вопросе на SO Принудительно очистить BufferingTargetWrapper У меня нет ничего подобного:

 LogManager.Configuration.AllTargets.Where(t => t != null && t is BufferingTargetWrapper).ToList().
            ForEach(b => ((BufferingTargetWrapper)b).Flush(null));

Но документация и этот ответ противоречат моей версии NLog (2.0.0.2000). {{ 1}} Не существует метода очистки без параметров, только метод очистки для асинхронных целей.

Есть ли способ заставить BufferingTargetWrapper сбрасывать все зарегистрированные сообщения в обернутую цель (для отправки по почте)?

10
задан Community 23 May 2017 в 12:23
поделиться