SMTP-приложение Log4j2 отправляет пустые письма - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь настроить Log4j2 для отправки электронных писем при возникновении ошибки.На данный момент он отправляет их без каких-либо ошибок, но тело всегда пусто.Это происходит с Log4j2 v2.11.1, JavaMail v1.6.2 и Tomcat 7.0.43.

Я уже пробовал использовать различные макеты (HtmlLayout, PatternLayout и т. Д.), Ни один из них не работал.Поиск в Google был бесполезен, поскольку единственными релевантными результатами были этот вопрос без ответов или комментариев (также в предыдущей версии Log4j) и эта нерешенная проблема без комментариев (который выглядиткак проблема, с которой я сталкиваюсь).Регистрация событий с использованием RollingFile и Console appenders работает отлично.

Вот соответствующая часть log4j2.xml (электронные письма и SMTP-сервер были изменены на примеры):

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <SMTP>
            <name>Mailer</name>
            <subject>Error Log</subject>
            <to>email@example.com</to>
            <from>log4j2@example.com</from>
            <smtpHost>smtp.example.com</smtpHost>
            <smtpPort>25</smtpPort>
            <ignoreExceptions>false</ignoreExceptions>
            <smtpProtocol>smtp</smtpProtocol>
            <smtpDebug>true</smtpDebug>
            <HtmlLayout charset="UTF-8" locationInfo="true"/>
        </SMTP>
    </Appenders>
    <Loggers>
        <Logger name="com.example" level="info">
            <AppenderRef ref="Mailer"/>
        </Logger>
    </Loggers>
</Configuration>

SMTPвыходные данные отладки не содержат ошибок и кажутся мне вполне нормальными (за исключением отсутствующего содержимого DATA):

May 02 13:36:21 example.com server[30644]: DEBUG SMTP: useEhlo true, useAuth false
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: trying to connect to host "smtp.example.com", port 25, isSSL false
May 02 13:36:21 example.com server[30644]: 220 smtp.example.com ESMTP Postfix (Debian/GNU)
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: connected to host "smtp.example.com", port: 25
May 02 13:36:21 example.com server[30644]: EHLO example.com
May 02 13:36:21 example.com server[30644]: 250-smtp.example.com
May 02 13:36:21 example.com server[30644]: 250-PIPELINING
May 02 13:36:21 example.com server[30644]: 250-SIZE 10240000
May 02 13:36:21 example.com server[30644]: 250-VRFY
May 02 13:36:21 example.com server[30644]: 250-ETRN
May 02 13:36:21 example.com server[30644]: 250-STARTTLS
May 02 13:36:21 example.com server[30644]: 250-ENHANCEDSTATUSCODES
May 02 13:36:21 example.com server[30644]: 250-8BITMIME
May 02 13:36:21 example.com server[30644]: 250-DSN
May 02 13:36:21 example.com server[30644]: 250 SMTPUTF8
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "PIPELINING", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "SIZE", arg "10240000"
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "VRFY", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "ETRN", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "STARTTLS", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "8BITMIME", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "DSN", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Found extension "SMTPUTF8", arg ""
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: use8bit false
May 02 13:36:21 example.com server[30644]: MAIL FROM:<log4j2@example.com>
May 02 13:36:21 example.com server[30644]: 250 2.1.0 Ok
May 02 13:36:21 example.com server[30644]: RCPT TO:<email@example.com>
May 02 13:36:21 example.com server[30644]: 250 2.1.5 Ok
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: Verified Addresses
May 02 13:36:21 example.com server[30644]: DEBUG SMTP:   email@example.com
May 02 13:36:21 example.com server[30644]: DATA
May 02 13:36:21 example.com server[30644]: 354 End data with <CR><LF>.<CR><LF>
May 02 13:36:21 example.com server[30644]: Date: Thu, 2 May 2019 13:36:21 +0200 (CEST)
May 02 13:36:21 example.com server[30644]: From: log4j2@example.com
May 02 13:36:21 example.com server[30644]: To: email@example.com
May 02 13:36:21 example.com server[30644]: Message-ID: <1720516454.3.1556792301896@example.com>
May 02 13:36:21 example.com server[30644]: Subject: Error Log
May 02 13:36:21 example.com server[30644]: MIME-Version: 1.0
May 02 13:36:21 example.com server[30644]: Content-Type: multipart/mixed;
May 02 13:36:21 example.com server[30644]: boundary="----=_Part_2_1938514944.1556792301895"
May 02 13:36:21 example.com server[30644]: .
May 02 13:36:21 example.com server[30644]: 250 2.0.0 Ok: queued as E23DBBEE73
May 02 13:36:21 example.com server[30644]: DEBUG SMTP: message successfully delivered to mail server
May 02 13:36:21 example.com server[30644]: QUIT
May 02 13:36:21 example.com server[30644]: 221 2.0.0 Bye

Я ожидаю, что в теле письма будет хотя бы ошибка, если не также предыдущие события в качестве SMTP-приложенияпо-видимому, для этого есть круговой буфер.

...