You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Harry Bawls (JIRA)" <ji...@apache.org> on 2016/10/01 05:08:20 UTC

[jira] [Commented] (LOG4J2-1192) Dynamic Subject for SMTP Appender

    [ https://issues.apache.org/jira/browse/LOG4J2-1192?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15537905#comment-15537905 ] 

Harry Bawls commented on LOG4J2-1192:
-------------------------------------

The implementation of this feature does not work. (or at least not work as expected).

While the email subject can now be set to a pattern, the pattern is evaluated only once. All subsequent email messages will then contain the same subject as the first email message created.

As an example try creating an smtp appender with a configuration like:
{code:xml}
<SMTP 
            subject="An error happened at %d{DEFAULT}"
            ...
</SMTP>
{code}
which should print the current time on the subject line. Then trigger 2 or 3 emails. The time will always be the same.

This is because the subject is set only once in createMimeMessage in SmtpManager. Instead it needs to be re-evaluated and re-set for every event much like the message body. I believe that was the expectation of the original request.

> Dynamic Subject for SMTP Appender
> ---------------------------------
>
>                 Key: LOG4J2-1192
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1192
>             Project: Log4j 2
>          Issue Type: New Feature
>          Components: Appenders
>    Affects Versions: 2.4.1
>         Environment: ALL
>            Reporter: Jörg Bretschneider
>            Assignee: Gary Gregory
>              Labels: features
>             Fix For: 2.6
>
>         Attachments: ExtendedSmtpAppender.java, ExtendedSmtpManager.java, MaxLengthConverter.java
>
>
> It is annoying to have log messages sent to users via SMTP Appender with a static subject, requiring recipients to open each of possibly a vast amount of log emails in order to find out what went wrong.
> Users should be able to insert runtime diagnostic context information to the message text AND to the message subject as well. 
> While the first seems to be working with Patternlayout using the mechanism with the %X{<key>} pattern based on a NDC or MDC <key> in the "ConversionPattern" parameter, it does NOT work with the "Subject" parameter with log4j (neither 1.2 nor 2.x), though some bloggers suggest it, e.g. http://stackoverflow.com/a/7015453. 
> See http://stackoverflow.com/questions/29435825/log4j2-custom-email-subject-from-map as an example where others found this also.
> This issue should have been fixed long ago.
> I suggest to extend SMTP appender in order to be able to use %X and other Pattern conversion in the "Subject" parameter properly. 
> http://openutils.sourceforge.net/openutils-log4j/smtpappender.html 
> has already done the part for applying PatternLayout to the SMTP Appender "Subject". I didn't test if this works properly. 
> Maybe this work can be included into log4j with minimal effort?
> This feature has originally been realized in LOGBACK using an MDC in Patternlayouts: http://logback.qos.ch/manual/mdc.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org