Вопрос по log4net-configuration, log4net – Log4Net LevelEvaluator Игнорируется, когда bufferSize больше 1 для SmtpAppender

10

Я настроил log4net с RollingLogFileAppender и SmtpAppender, с целью регистрации уровня DEBUG для RollingLogFileAppender и FATAL только для SmtpAppender:


  
  
  
  
  
  
        
  
  
  
    
        
  
  
  



  
  
  

Это прекрасно работает, пока я не увеличу размер bufferSize. Когда я делаю это, все уровни отправляются по электронной почте, и log4net.Core.LevelEvaluator, похоже, игнорируется. Я также пытался использовать LevelRangeFilter и LevelMatchFilter, но с этими настройками я, похоже, вообще не получаю электронных писем.

Ваш Ответ

1   ответ
10

Оценщик не игнорируется, но он не выполняет то, что вы ожидаете: ваши настройки предписывают приложению поместить все сообщения журнала в буфер и отправлять электронную почту только тогда, когда регистрируется сообщение с уровнем FATAL. Если буфер заполнен, самые старые сообщения отбрасываются (это параметр с потерями; без него вы также получите электронное письмо, как только буфер заполнится).

Если вы хотите фильтровать сообщения, вам нужно использовать фильтр. Например, вот так:


   
   


Однако я не уверен, что я буду считать своего почтового аппендера таким, поскольку я хотел бы получать уведомления немедленно, если у моего приложения есть проблема, которая должна регистрировать его с уровнем FATAL.

Спасибо Стефан, я нене понимаю, что я не былt получать все журналы до тех пор, пока не будет создан FATAL. Теперь я понимаю, что эта конфигурация действительно хорошо работает для меня! Еще раз спасибо за ответ. Gary Wright

Похожие вопросы