1

This is my log4j.xml file where TO_ADDRESS is Environmental variable name. value="${env:TO_ADDRESS}" does not work for me.

<appender name="mailAppender" class="org.apache.log4j.net.SMTPAppender">
    <param name="BufferSize" value="512" />
    <param name="SMTPHost" value="smtp.gmail.com" />
    <param name="SMTPPort" value="465" />
    <param name="SMTPUsername" value="username" />
    <param name="SMTPPassword" value="password" />
    <param name="SMTPProtocol" value="smtps" />
    <param name="From" value="fromAddress" />
    <param name="To" value="${env:TO_ADDRESS}" />
    <param name="Subject" value="HelloWorld" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="error" />
        <param name="LevelMax" value="fatal" />
    </filter>
</appender>

Any suggestions would be appreciated. Thanks in advance.

StackUseR
  • 884
  • 1
  • 11
  • 40
  • do you get any error , stack trace? – kuhajeyan Nov 21 '16 at 12:17
  • Yes. This is the exception that I am getting. – StackUseR Nov 21 '16 at 12:35
  • log4j:ERROR Error occured while sending e-mail notification. javax.mail.SendFailedException: No recipient addresses – StackUseR Nov 21 '16 at 12:35
  • when type SET in your command prompt what do you see? and also try $${env:TO_ADDRESS} – kuhajeyan Nov 21 '16 at 12:39
  • U mean SET environmental variable value in Command prompt? – StackUseR Nov 21 '16 at 12:47
  • On trying to use $${env:TO_ADDRESS}, I got this error-log4j:ERROR Error occured 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 <$> is not a valid RFC-5321 address. l69sm37567076pfk.34 - gsmtp – StackUseR Nov 21 '16 at 12:47
  • when you just type SET in command prompt you should see your TO_ADDRESS listed with value if you have properly set an env variable (windows) – kuhajeyan Nov 21 '16 at 12:48
  • Yes. TO_ADDRESS is displayed on type SET in command prompt. – StackUseR Nov 21 '16 at 12:50
  • which version of log4j do you use? – kuhajeyan Nov 21 '16 at 12:55
  • version-1.2.17. – StackUseR Nov 21 '16 at 12:59
  • probably that case, seems lookup (environtment, system has been implemented with 2.x version onwards. try just ${TO_ADDRESS}, or else i guess you best bet would be to move 2.x - | refer https://logging.apache.org/log4j/2.x/manual/migration.html – kuhajeyan Nov 21 '16 at 13:05
  • On adding log4j version to 2.7 , I am getting this error- Failed to instantiate SLF4J LoggerFactory Reported exception: java.lang.NoClassDefFoundError: org/apache/log4j/Level – StackUseR Nov 21 '16 at 13:14
  • http://stackoverflow.com/questions/25704527/how-to-bind-slf4j-with-log4j – kuhajeyan Nov 21 '16 at 13:17
  • ${TO_ADDRESS} works on adding in the -DTO_ADDRESS="address" in the VM agruments of 'Edit lauch configuaration properties' page of the localhost server. But I need to access value through system environment variable only. – StackUseR Nov 21 '16 at 13:18

0 Answers0