I see. With current log4j, you'd need to reload the config then.
I wouldn't like to implement reloading just one appender (but perhaps others think differently).
Without looking at the code, supporting dynamically evaluation of double $'s in SmtpAppender
seems like a good approach. Can you raise a Jira feature request for that?
Sent from my iPhone
> On 2016/06/29, at 1:33, Benjamin Jaton <benjamin.jaton@gmail.com> wrote:
>
> Ah I forgot about this trick.
>
> It doesn't seem to be supported by the SMTPAppender:
>
> ---------------------------------------------------------------------------
> 2016-06-28 09:30:06,562 main ERROR SmtpManager
> SMTP:5bea43473970a15b1a4dbd9dcce1c4f6 caught exception while sending e-mail
> notification.: javax.mail.SendFailedException: Invalid Addresses;
> nested exception is:
> com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.2 The recipient
> address <${email.recipient}> is not a valid
> 553 5.1.2 RFC-5321 address. t128sm520507pfb.14 - gsmtp
> javax.mail.SendFailedException: Invalid Addresses;
> nested exception is:
> com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.2 *The recipient
> address <${email.recipient}> is not a valid*
> 553 5.1.2 RFC-5321 address. t128sm520507pfb.14 - gsmtp
>
> at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1996)
> at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1240)
> at javax.mail.Transport.send0(Transport.java:255)
> at javax.mail.Transport.send(Transport.java:124)
> at
> org.apache.logging.log4j.core.net.SmtpManager.sendMultipartMessage(SmtpManager.java:257)
> at
> org.apache.logging.log4j.core.net.SmtpManager.sendEvents(SmtpManager.java:172)
> at
> org.apache.logging.log4j.core.appender.SmtpAppender.append(SmtpAppender.java:177)
> at
> org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:155)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:128)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:119)
> at
> org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:390)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:375)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:359)
> at
> org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:349)
> at
> org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:63)
> at org.apache.logging.log4j.core.Logger.logMessage(Logger.java:146)
> at
> org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2002)
> at
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1974)
> at
> org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:738)
> at Test.main(Test.java:19)
> Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 553-5.1.2 The
> recipient address <${email.recipient}> is not a valid
> 553 5.1.2 RFC-5321 address. t128sm520507pfb.14 - gsmtp
>
> at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1849)
> ... 20 more
> ---------------------------------------------------------------------------
>
>
> Or when I try it with the port:
>
> ---------------------------------------------------------------------------
> 2016-06-28 09:29:03,268 main ERROR *Could not parse "${email.smtp.port}" *as
> an integer, using default value 0: java.lang.NumberFormatException: For
> input string: "${email.smtp.port}"
> ---------------------------------------------------------------------------
>
>
>
> Thanks
> Ben
>
>
>> On Mon, Jun 27, 2016 at 3:36 PM, Remko Popma <remko.popma@gmail.com> wrote:
>>
>> Have you tried configuring with two leading '$' characters?
>>
>> http://logging.apache.org/log4j/2.x/manual/configuration.html#RuntimeLookup
>>
>>
>> Sent from my iPhone
>>
>>> On 2016/06/28, at 3:17, Benjamin Jaton <benjamin.jaton@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> I have a simple appender like:
>>>
>>> {
>>> "type" : "smtp",
>>> "name" : "EmailAppender",
>>> "subject" : "${email.subject}",
>>> "to" : "${email.recipient}",
>>> "from" : "${email.from}",
>>> "smtpProtocol" : "${email.smtp.protocol}",
>>> "smtpHost" : "${email.smtp.host}",
>>> "smtpPort" : "${email.smtp.port}",
>>> "smtpUsername" : "${email.smtp.username}",
>>> "smtpPassword" : "${email.smtp.password}"
>>> }
>>>
>>> When I have a updated value for one of those property (for example
>>> ${email.subject} has changed, what's the simplest way to reload the
>>> appender so that it takes that new value?
>>> Do we have to force a full reconfiguration?
>>>
>>> Thanks
>>> Ben
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>> For additional commands, e-mail: log4j-user-help@logging.apache.org
>>
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org
|