Рубрики
Без рубрики

Отправка электронных писем с логбэком

Узнайте, как настроить обратный вход для отправки уведомлений по электронной почте о любых ошибках приложения

Автор оригинала: Shubhra Srivastava.

1. Обзор

Logback-один из самых популярных фреймворков ведения журнала для приложений на базе Java. Он имеет встроенную поддержку расширенной фильтрации, архивирования и удаления старых файлов журналов, а также отправки сообщений журнала по электронной почте.

В этом кратком руководстве мы настроим обратный вход для отправки уведомлений по электронной почте о любых ошибках приложения.

2. Настройка

Функция уведомления по электронной почте Logback требует использования SMTPAppender. | SMTPAppender использует API JavaMail, который, в свою очередь, зависит от платформы активации JavaBeans.

Давайте добавим эти зависимости в наш POM :


    javax.mail
    mail
    1.4.7


    javax.activation
    activation
    1.1.1
    runtime

Мы можем найти последние версии JavaMail API и JavaBeans Activation Framework на Maven Central.

3. Настройка SMTPAppender

Logback SMTPAppender , по умолчанию запускает электронное письмо при регистрации события ERROR .

Он хранит все события регистрации в циклическом буфере с максимальной емкостью по умолчанию 256 событий. После заполнения буфера он отбрасывает все старые события журнала.

Давайте настроим SMTPAppender в вашем logback.xml :


    OUR-SMTP-HOST-ADDRESS
    
    EMAIL-RECIPIENT-1
    EMAIL-RECIPIENT-2
    SENDER-EMAIL-ADDRESS
    BAELDUNG: %logger{20} - %msg
    
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n
    

Кроме того, мы добавим это приложение в нашу конфигурацию Logback root элемент:


    

В результате для любого приложения ОШИБКА , которое регистрируется, он отправит электронное письмо со всеми буферизованными событиями регистрации , отформатированными PatternLayout .

Далее мы можем заменить PatternLayout на HTML-макет для форматирования сообщений журнала в таблице HTML:

4. Пользовательский Размер Буфера

Теперь мы знаем, что по умолчанию исходящее электронное письмо будет содержать последние 256 сообщений о событиях регистрации . Однако мы можем настроить это поведение, включив конфигурацию cyclicBufferTracker и указав желаемый Размер буфера .

Для запуска уведомления по электронной почте, которое будет включать только последние пять событий регистрации, у нас будет:


    OUR-SMTP-HOST-ADDRESS
    EMAIL-RECIPIENT
    SENDER-EMAIL-ADDRESS
    BAELDUNG: %logger{20} - %msg
    
     
        5
    

5. SMTPAppender для Gmail

Если мы используем Gmail в качестве поставщика SMTP, нам придется проходить аутентификацию по протоколу SSL или STARTTLS.

Чтобы установить соединение через STARTTLS, клиент сначала выдает серверу команду STARTTLS. Если сервер поддерживает эту связь, соединение затем переключается на SSL.

Теперь давайте настроим наше приложение для Gmail с помощью STARTTLS:


    smtp.gmail.com
    587
    true
    false
    [email protected]
    GMAIL-ACCT-PASSWORD
    EMAIL-RECIPIENT
    [email protected]
    BAELDUNG: %logger{20} - %msg
    

6. Заключение

В этой статье мы рассмотрели, как настроить обратный вход SMTPAppender для отправки электронных писем в случае ошибки приложения.

Как обычно, все примеры кода доступны на Github .