Я пытаюсь войти через 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 сбрасывать все зарегистрированные сообщения в обернутую цель (для отправки по почте)?