Я создал пользовательский log4net-appender. Он сходит с log4net.Appender.SmtpAppender, который спускается из log4net.Appender.BufferingAppenderSkeleton.Почему моя буферизация app log4net app?
Я программно настроить следующие параметры в своем конструкторе:
this.Lossy = false; //don't drop any messages
this.BufferSize = 3; //buffer up to 3 messages
this.Threshold = log4net.Core.Level.Error; //append messages of Error or higher
this.Evaluator = new log4net.Core.LevelEvaluator(Level.Off); //don't flush the buffer for any message, regardless of level
я ожидаю это будет буфером 3 события ошибки уровня или выше, и поставить те события, когда буфер заполнен. Однако я обнаружил, что события не буферизованы вообще; вместо этого SendBuffer() вызывается немедленно каждый раз, когда регистрируется ошибка.
Ошибка:
Благодаря
Мое понимание заключается в том, что он сообщает приложению, чтобы он скрылся, когда получено сообщение, превышающее указанный порог. http://logging.apache.org/log4net/release/sdk/log4net.Core.LevelEvaluator.html Я также понимаю, что Level.Off является самым высоким порогом. http://logging.apache.org/log4net/release/sdk/log4net.Core.Level.Off.html Являются ли они неправильными? – Eric
@ Эрик: см. Мой обновленный ответ. –
красиво сделано. Это работает для меня. Спасибо. – Eric