2015-04-01 120 views
0

我在我的應用程序中使用log4j2.2。我希望在應用程序出現錯誤時收到電子郵件。這種配置當有應用程序錯誤,我從來沒有收到電子郵件不幸Log4j2 smtp appender不起作用的根日誌記錄器

<root level="error"> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="AsyncFile" /> 
    <appender-ref ref="Mailer" /> 
</root>  

所以我配置了一個SMTP的appender:

<SMTP name="Mailer" subject="Ecall logs" to="${receipients}" 
     from="${from}" smtpHost="${smtpHost}" smtpPort="${smtpPort}" 
     smtpProtocol="${smtpProtocol}" smtpUsername="${smtpUser}" 
     smtpPassword="${smtpPassword}" smtpDebug="true" bufferSize="200" 
     ignoreExceptions="false"> 
</SMTP> 

,我把它添加到根記錄。其實我也已經一些人自定義記錄程序:

<logger level="info" name="org.flywaydb" additivity="false"> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="AsyncFile" /> 
</logger> 

這是配置整個應用程序(趕上從所有包中的所有錯誤)與100行的緩衝區,以看到一個SMTP記錄儀的正確方法在錯誤之前/之後發生?

回答

1

您可能已經找到了錯誤。 SMTP appender收到ERROR級別的日誌事件時應發送電子郵件。它會嘗試在錯誤之前包含「bufferSize」事件(從TRACE到WARN)。

我不認爲SMPT附加器要求前述任一非錯誤的事件,但你可以試試這個:

<root level="trace"> 
    <appender-ref ref="Console" level="error"/> 
    <appender-ref ref="AsyncFile" level="error"/> 
    <appender-ref ref="Mailer" level="trace"/> 
</root> 

如果問題仍然存在,請提高對log4j2 JIRA問題跟蹤票。

相關問題