Log4j SMTPappender 错误

发布于 2024-09-16 10:37:45 字数 4219 浏览 4 评论 0原文

我正在尝试使用下面的 log4j SMTPappender。错误。所有其他附加程序都工作正常。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!--                          -->
<!-- Declare the SMTPAppender -->
<!--                          -->
<appender name="EMAIL"  class="org.apache.log4j.net.SMTPAppender">
    <param name="BufferSize" value="512" />
    <param name="SMTPHost" value="relaymail.xxx.com" />
    <param name="From" value="[email protected]" />
    <param name="To" value="[email protected]" />
    <param name="Subject" value="[SMTPAppender] Application message" />
    <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>

<!--                           -->
<!-- setup log4j's root logger -->
<!--                           -->
<root>
    <level value="all" />
    <appender-ref ref="EMAIL" />
</root>

我的Java代码

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class simpandfile{
   static Logger logger = Logger.getLogger(simpandfile.class);
   public static void main(String args[]) {
      DOMConfigurator.configure("xmllog4jconfig.xml");
      System.setProperty("mail.smtps.host", "smtp.gmail.com:465");
      System.setProperty("mail.smtps.auth", "true");
      logger.debug("Here is DEBUG");
      logger.info("Here is some INFO blah");
      logger.warn("Here is some WARN");
      logger.error("Here");
      logger.debug("prasanna Test");
   }
}
**Exceptions** 
log4j:WARN Continuable parsing error 31 and column 23
log4j:WARN The content of element type "log4j:configuration" must match "(render
er*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFacto
ry|loggerFactory)?)".
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/internet/A
ddressException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.ja
va:247)
        at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurat
or.java:176)
        at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfi
gurator.java:191)
        at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOM
Configurator.java:523)
        at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:4
92)
        at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1001)

        at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
:867)
        at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
:755)
        at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:8
91)
        at simpandfile.main(simpandfile.java:6)
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressExceptio
n
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 15 more

I am trying to use log4j SMTPappender getting below. error. All other appenders are working fine.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<!--                          -->
<!-- Declare the SMTPAppender -->
<!--                          -->
<appender name="EMAIL"  class="org.apache.log4j.net.SMTPAppender">
    <param name="BufferSize" value="512" />
    <param name="SMTPHost" value="relaymail.xxx.com" />
    <param name="From" value="[email protected]" />
    <param name="To" value="[email protected]" />
    <param name="Subject" value="[SMTPAppender] Application message" />
    <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>

<!--                           -->
<!-- setup log4j's root logger -->
<!--                           -->
<root>
    <level value="all" />
    <appender-ref ref="EMAIL" />
</root>

My Java Code

import org.apache.log4j.Logger;
import org.apache.log4j.xml.DOMConfigurator;
public class simpandfile{
   static Logger logger = Logger.getLogger(simpandfile.class);
   public static void main(String args[]) {
      DOMConfigurator.configure("xmllog4jconfig.xml");
      System.setProperty("mail.smtps.host", "smtp.gmail.com:465");
      System.setProperty("mail.smtps.auth", "true");
      logger.debug("Here is DEBUG");
      logger.info("Here is some INFO blah");
      logger.warn("Here is some WARN");
      logger.error("Here");
      logger.debug("prasanna Test");
   }
}
**Exceptions** 
log4j:WARN Continuable parsing error 31 and column 23
log4j:WARN The content of element type "log4j:configuration" must match "(render
er*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFacto
ry|loggerFactory)?)".
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/internet/A
ddressException
        at java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
        at java.lang.Class.getConstructor0(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.ja
va:247)
        at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurat
or.java:176)
        at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfi
gurator.java:191)
        at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOM
Configurator.java:523)
        at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:4
92)
        at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1001)

        at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
:867)
        at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
:755)
        at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:8
91)
        at simpandfile.main(simpandfile.java:6)
Caused by: java.lang.ClassNotFoundException: javax.mail.internet.AddressExceptio
n
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 15 more

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

溺ぐ爱和你が 2024-09-23 10:37:45

您的类路径中需要 mail.jar 和activation.jar

You need mail.jar and activation.jar in your classpath

月依秋水 2024-09-23 10:37:45

JoseK 关于第二个错误的说法是正确的。然而,第一个错误:

log4j:WARN 持续解析错误
31 和第 23 栏 log4j:WARN
元素类型的内容
“log4j:配置”必须匹配
“(使成为
呃*,throwableRenderer?,appender*,插件*,(类别|记录器)*,根?,(categoryFacto
ry|loggerFactory)?)"。

通常意味着以下两件事之一:

  • 您没有根记录器
  • 您没有正确关闭标签

由于您确实有根记录器,因此您可以摆脱第一个记录器错误,请确保文件中的最后一个标签如下:

</log4j:configuration>

在您的情况下,它要么丢失,要么采用以下格式:

</log4j>

JoseK is right about the second error. However, the first error:

log4j:WARN Continuable parsing error
31 and column 23 log4j:WARN The
content of element type
"log4j:configuration" must match
"(render
er*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFacto
ry|loggerFactory)?)".

typically means one of two things:

  • You don't have a root logger
  • You didn't properly close your <log4j> tag

Since you do have a root logger, you can get rid of your first error by making sure the last tag in your file is as follows:

</log4j:configuration>

In your case, it is either missing or in this format:

</log4j>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文