tags:

views:

151

answers:

2

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/"&gt;

<!--                          -->
<!-- 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
+2  A: 

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

JoseK
A: 

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>
gmale