我在Java程序中用到了Log4j,开始只是在控制台和文件中输出Log,现在要加上Log4j发邮件的功能,但是当我在log4j.properties文件中加入MAIL的配制时,一运行到PropertyConfigurator.configure("log4j.properties");就报错,把MAIL部分去掉就正常,请大家帮帮忙,谢谢。
以下是log4j.properties文件中MAIL部分log4j.rootLogger=INFO,A1,A2,MAIL
……
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.SMTPHost=smtp.……
log4j.appender.MAIL.SMTPDebug=true
log4j.appender.MAIL.Subject=Log4JErrorMessage
log4j.appender.MAIL.SMTPUsername=……
log4j.appender.MAIL.SMTPPassword=……
log4j.appender.MAIL.From=……
log4j.appender.MAIL.To=……
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[%5p] %d [%t] (%F:%L) - %m%n
以下是log4j.properties文件中MAIL部分log4j.rootLogger=INFO,A1,A2,MAIL
……
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=ERROR
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.SMTPHost=smtp.……
log4j.appender.MAIL.SMTPDebug=true
log4j.appender.MAIL.Subject=Log4JErrorMessage
log4j.appender.MAIL.SMTPUsername=……
log4j.appender.MAIL.SMTPPassword=……
log4j.appender.MAIL.From=……
log4j.appender.MAIL.To=……
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[%5p] %d [%t] (%F:%L) - %m%n
解决方案 »
- 关于简单的 Socket问题 大家帮帮忙!~~~
- javaweb转iphone开发,iphone开发有前途吗?
- 如何用java语言实现端口扫描器
- JFrame里面,用FrameA里面的toggle按钮去开启和关闭FrameB,如何实现?比较急,在线等,谢谢!
- 升★★了,放分庆祝,不过要先回答问题:JDK1.4比之前的版本增加了些什么特性
- 弹出一个新的JFrame
- Java基础问题,望大神不吝赐教
- 各位老大们,在jbuilder6.0中怎么设置
- 弱弱的求助--98下的JDK 1.4.1,怎样安装,设置路径,环境变量等..
- 为什么加上package就不行?
- java学习计划安排 老鸟来帮帮忙哈
- 用扫码枪入库问题
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/internet/AddressException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:330)
at org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:121)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:664)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:647)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:544)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:440)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:334)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:342)
at test.Log4jTestMain.<init>(Log4jTestMain.java:11)
at test.Log4jTestMain.main(Log4jTestMain.java:15)
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressException
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 15 more2.去掉的部分已经贴出来了,就是上面的log4j.properties中的MAIL部分。
谢谢,请问缺哪个包?
javax.mail.internet.AddressException在mail.jar中有。下面是build path中加入的包:
commons-codec-1.3.jar
commons-httpclient-3.1.jar
commons-logging-1.1.1.jar
jakarta-oro-2.0.8.jar
activation.jar
log4j-1.2.15.jar
mail.jar
java.lang.NoClassDefFoundError提示类找不到
请问用log4j发邮件,还需要什么jar包吗?谢谢!
在classpath下配置和放在jre中有什么区别吗?
只有一种解释,你classpath下配置的不对,小问题你没发现。正常有 eclipse直接把JAR包导入类路径就行。无论你有哪种方式,都是把要用的JAR包导入到类路径中,与类一起编译运行。
说实在的如果配在classpath下,除非是包地址不对,或则包的导入顺序有问题,否则不会出现你的问题
1.我直接用Eclipse导入mail.jar时,可以用Java调用mail.jar发邮件;
2.log4j.properties中没有加入mail部分时,是正常的;所以,我想是不是log4j.properties加入mail后,需要mail.jar,而且配置文件是不是要到CLASSPATH中去找jar包,而我只是在Eclipse中加了mail.jar,而没有在CLASSPATH中加,所以就找不到。不知道我分析的是否正确?如果是这样,是不是只能在CLASSPATH中加mail.jar了,能不能放在工程中呢?
谢谢!
activation.jar
mail.jar
谢谢!
我觉得你是用Eclipse开发项目,却用命令行启动应用,如果是这样,那就有点。
谢谢!
开发的时候当然是用Eclipse启动了。