logback-smtpAppender有没有办法在应用程序中添加一些主题信息?

时间:2012-07-29 09:56:17

标签: java logback appender smtpappender

我正在尝试使用logback邮寄错误日志以及一些其他信息。例如,当出现错误时,我想添加在应用程序中记录的用户标签,最好在主题中。我知道如果记录的用户存在,我可以捕获所有错误并将用户标签添加到错误消息,但是有更好的方法吗?现在我的logback看起来像这样:

<appender name="EMAIL" class="ch.qos.logback.classic.net.SMTPAppender">
            <SMTPHost>${smtpHost}</SMTPHost>
            <Username>${smtpUser}</Username>
            <Password>${smtpPass}</Password>
            <To>${mail}</To>
            <From>${mailFrom}</From>
            <Subject>SYSTEM ERROR: %logger{20} - %m</Subject>
            <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%date %logger{35} - %message%n</Pattern>
            </layout>

 </appender>

1 个答案:

答案 0 :(得分:2)

首先,实施MDC解决方案以跟踪应用程序中的用户,请参阅:Logging user activity in web app。完成此操作后(您可以在许多其他地方受益),只需向主题添加自定义键:

<Subject>SYSTEM ERROR: %logger{20} - %X{user} - %m</Subject>

证明可以工作。