с SMTPAppender я получаю только ошибку, а не тип информации элементов журнала

Я настроил SMTPAppender в мое приложение Java.

<appender name="AdministratorEmail" class="org.apache.log4j.net.SMTPAppender">
  <param name="Threshold" value="info" />
  <param name="BufferSize" value="512" />
  <param name="SMTPHost" value="smtp.sss.intranet" />
  <param name="From" value="adminEbookMaker@sss.intranet" />
  <param name="To" value="user@sss.it" />
  <param name="Subject" value="errors" />       
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
  </layout>
  <filter class="org.apache.log4j.varia.LevelRangeFilter">
    <param name="LevelMin" value="info" />
    <param name="LevelMax" value="fatal" />
  </filter>
</appender>

Я получаю только тип журнала ошибок, а не тип информации! Я изменил LevelMin но ничего, я вставил Thresold, но ничего!

есть ли у кого-нибудь какие-либо предложения?

1 ответов


SMTPAppender по дизайну только регистрирует ошибку и выше сообщений. Свойства не могут влиять на этот уровень. Документация для добавленных состояний:

по умолчанию сообщение электронной почты будет отправлено при добавлении сообщения об ошибке или более высокой степени серьезности. Критерии запуска можно изменить, установив свойство evaluatorClass с именем класса, реализующего TriggeringEventEvaluator, установив свойство evaluator с экземпляром TriggeringEventEvaluator или вложенность элемента triggeringPolicy, где указанный класс реализует TriggeringEventEvaluator

посмотреть: Класс SMTPAppender

тот факт, что вы видите информационные сообщения только после первой ошибки, объясняется свойством bufferSize, которое показывает последние строки журнала " n " перед ошибкой, чтобы дать контекст ошибке.

дальнейшие исследования по этому вопросу показывают, что существует реализация требуемого интерфейс для TriggerEventEvaluator в "дополнительном компаньоне"

Это можно загрузить с: Apache Скачать Зеркала

Если вы включите это в свой проект, вы можете добавить следующее определение SMTPAppender в log4j.xml (обратите внимание, что формат свойств не поддерживается!)

  <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
...
    <triggeringPolicy  class="org.apache.log4j.rolling.FilterBasedTriggeringPolicy">
      <filter class="org.apache.log4j.filter.LevelRangeFilter">
        <param name="levelMin" value="INFO" />
      </filter>
    </triggeringPolicy>
...
  </appender>