2012-03-27 60 views
4

我需要在任何異常日誌文件中。這發生時發送電子郵件是我log4j.properties文件的Log4j:無法使用的Log4j SMTP附加目的地

log4j.rootLogger=Info, EMAIL 
# EMAIL 
log4j.appender.EMAIL=org.apache.log4j.net.SMTPAppender 
log4j.appender.EMAIL.SMTPHost=smtp.gmail.com 
log4j.appender.EMAIL.SMTPProtocol=smtp 
log4j.appender.EMAIL.SMTPPort=25 
log4j.appender.EMAIL.StartTls=true 
[email protected] 
[email protected] 
log4j.appender.EMAIL.SMTPUsername=krn1231 
log4j.appender.EMAIL.SMTPPassword=mypassword 
log4j.appender.EMAIL.Subject=Test Gmail Smtp 
log4j.appender.EMAIL.layout=org.apache.log4j.PatternLayout 
log4j.appender.EMAIL.layout.ConversionPattern=[%d] [%t] %-5p %c %x - %m%n 
log4j.appender.EMAIL.Threshold=ERROR 
log4j.appender.EMAIL.BufferSize=1 
log4j.appender.EMAIL.SMTPDebug=true 

這是我的示例程序來發送郵件測試這個

import org.apache.log4j.Logger; 

public class Test { 

    private static Logger loggers = Logger.getLogger(Test.class); 

    public static void main(String args[]) { 

     try { 
      loggers.info("Hisas"); 
      throw new NullPointerException(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

} 

我想試錯的所有方式,但沒有用的

這是Eclipse控制檯內給定的輸出,當我試圖

log4j:WARN No such property [startTls] in org.apache.log4j.net.SMTPAppender. 
DEBUG: setDebug: JavaMail version 1.4ea 
java.lang.NullPointerException 
    at Test.main(Test.java:11) 

當我執行該命令上提示

的telnet smtp.gmail.com 25

它與反應良好

220 mx.google.com ESMTP f8sm802040pbe.42

+0

你確定你正在尋找正確的log4j.properties文件?因爲你的錯誤消息說,它不能使用「25#NEW」作爲端口的值,但你發佈的log4j.properties只包含「25」作爲端口值。 – 2012-03-27 18:00:11

+1

[Log4j在記錄錯誤時無法發送電子郵件]的可能重複(http://stackoverflow.com/questions/6242838/log4j-failing-to-send-an-email-when-logging-an-error) – CoolBeans 2012-03-27 18:02:22

+0

你好,我已經修改了這個問題,對於造成的混亂感到抱歉。 – Pawan 2012-03-27 18:02:51

回答

2

請嘗試smtps協議,因爲Gmail需要SSL。

4

通過VM arguement第一即-Dmail.smtp.starttls.enable=true

log4j.rootLogger=DEBUG, sendMail 
     log4j.appender.sendMail=org.apache.log4j.net.SMTPAppender 
     log4j.appender.sendMail.SMTPProtocol=smtps 
     log4j.appender.sendMail.Threshold=ERROR 
     log4j.appender.sendMail.SMTPPort=465 
     [email protected] 
     [email protected] 
     log4j.appender.sendMail.SMTPPassword=......... 
     [email protected] 
     log4j.appender.sendMail.SMTPHost=smtp.gmail.com 
     log4j.appender.sendMail.Subject=Error Alert 
     log4j.appender.sendMail.layout=org.apache.log4j.PatternLayout 
     log4j.appender.sendMail.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss.SSS} [%p] %t %c - %m%n 
     log4j.appender.sendMail.smtp.starttls.enable=true 
     log4j.appender.sendMail.smtp.auth=true 
     log4j.appender.sendMail.BufferSize=1 
+0

爲我工作。謝謝 – leventunver 2017-07-13 15:11:59