Автор оригинала: Shubhra Srivastava.
1. Обзор
Logback-один из самых популярных фреймворков ведения журнала для приложений на базе Java. Он имеет встроенную поддержку расширенной фильтрации, архивирования и удаления старых файлов журналов, а также отправки сообщений журнала по электронной почте.
В этом кратком руководстве мы настроим обратный вход для отправки уведомлений по электронной почте о любых ошибках приложения.
2. Настройка
Функция уведомления по электронной почте Logback требует использования SMTPAppender. | SMTPAppender использует API JavaMail, который, в свою очередь, зависит от платформы активации JavaBeans.
Давайте добавим эти зависимости в наш POM :
javax.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 .