Настройка уровней журнала из SMTPAppender - PullRequest
1 голос
/ 11 марта 2019

Как включить предупреждение и события более высокого уровня в приложение SMTP?

SMTPAppender хранит только последние события регистрации BufferSize в своем циклическом буфере. Это поддерживает требования к памяти на разумном уровне, в то же время обеспечивая полезный контекст приложения. Все события в буфере включены в электронное письмо. Буфер будет содержать самые последние события уровня TRACE до WARN , предшествующие событию, которое вызвало электронную почту.

Поведение по умолчанию - инициировать отправку электронного письма, когда регистрируется событие ОШИБКА или выше, и форматировать его как HTML. Обстоятельства отправки электронного письма можно контролировать, установив один или несколько фильтров в Appender. Log4j2 SMTPAppender

Согласно этому комментарию отправка электронной почты событие привязано к пороговому фильтру . Настройка порогового фильтра изменяет уровень событий, которые инициируют отправку электронного письма, но не влияет на то, что будет сохранено в буфере.

Изменение самого уровня регистратора неосуществимо, поскольку события должны обрабатываться и другими приложениями.

<Appender>
    ....
    <SMTP name="Mail" subject="Error Log"
        to="${mailTo}" smtpHost="smtp.googlemail.com"
        smtpProtocol="smtps" smtpPort="465" bufferSize="512"
        smtpUsername="${smtpUsername}"
        smtpPassword="${smtpPassword}">
        <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
    </SMTP>
    <Async name="AsyncMail">
        <AppenderRef ref="Mail" />
    </Async>
</Appenders>
<Loggers>
    <Logger name="com.github.kilianB" level="trace">
        <AppenderRef ref="STDOUT" />
        <AppenderRef ref="FILE" />
        <AppenderRef ref="AsyncMail" />
    </Logger>
</Loggers>
...