Java log4j2无法向电子邮件发送错误通知
我目前正在创建一个Java应用程序。当我的应用程序出现错误时,我想向我的gmail帐户发送电子邮件通知。下面是log4j2.xml文件的一部分。但当我尝试运行我的应用程序时,应用程序会打印出来Java log4j2无法向电子邮件发送错误通知,java,xml,log4j,log4j2,smtpappender,Java,Xml,Log4j,Log4j2,Smtpappender,我目前正在创建一个Java应用程序。当我的应用程序出现错误时,我想向我的gmail帐户发送电子邮件通知。下面是log4j2.xml文件的一部分。但当我尝试运行我的应用程序时,应用程序会打印出来 2015-08-28 14:16:51,671 ERROR Unable to locate appender Email for logger 我不知道为什么它不起作用。谢谢你的帮助 这是我的log4j2.xml文件的一部分 <appender name= "Email" class="org
2015-08-28 14:16:51,671 ERROR Unable to locate appender Email for logger
我不知道为什么它不起作用。谢谢你的帮助
这是我的log4j2.xml文件的一部分
<appender name= "Email" class="org.apache.log4j.net.SMTPAppender">
<param name = "BufferSize" value = "50"/>
<param name = "SMTPHost" value = "smtp.gmail.com"/>
<param name = "SMTPort" value = "465"/>
<param name = "SMTPUsername" value ="myemail@gmail.com"/>
<param name = "SMTPPassword" value ="mypassword"/>
<param name = "From" value="myemail@gmail.com"/>
<param name = "To" value="myemail@gmail.com"/>
<param name = "Subject" value="Testing Log4j mail notification"/>
<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>
是否在您的
log4j2.xml
文件中声明了记录器?您的配置文件名为“log4j2.xml”,当您使用log4j 1.x时,它的意思是log4j 2.x。您的配置应该命名为“log4j.xml”,而不是您正在为log4j 1.x(org.apache.log4j.abcccc)设置xml代码,但是您正在为log4j版本2.xis使用文件名语法(log4j2.xml),这是在log4j2.xml
文件中声明的记录器吗?您的配置文件名为“log4j2.xml”,当您使用log4j 1.x时,它是为log4j 2.x指定的。您的配置应该命名为“log4j.xml”,而不是您正在为log4j 1.x(org.apache.log4j.abcccc)设置xml代码,但是您正在为log4j版本2.x使用文件名语法(log4j2.xml)
package com.testcase;
import org.apache.logging.log4j.Logger ;
import org.apache.logging.log4j.LogManager;
public class log4jDemo {
protected static Logger logger = LogManager.getLogger(log4jDemo.class);
public static void main (String [] args){
logger.trace("trace message");
logger.warn("warn message");
logger.error("Error message, a very long error message");
}
}