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