Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to send a mail using SMTPAppender in Log4j..?

807603Jan 4 2008 — edited Jan 4 2008
Hello friends,
I'm new to this forum.

I'm trying to send mail using SMTPAppender.
I am getting this error..

---------------------------------------
javax.xml.parsers.FactoryConfigurationError: Provider for javax.xml.parsers.DocumentBuilderFactory cannot be found
at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:772)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:696)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
at org.apache.log4j.Logger.getLogger(Logger.java:105)
at com.honeywell.logging.Log.<clinit>(Log.java:36)
Exception in thread "main"
---------------------------------------

Here is the code...

Log.java
-------------

package com.something.log;

import org.apache.log4j.Logger;
import org.apache.log4j.LogManager;

import javax.mail.*;
import javax.mail.internet.*;
import org.apache.log4j.helpers.Loader;
import org.apache.log4j.xml.DOMConfigurator;

import java.net.URL;
import java.util.*;
import javax.mail.Message;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.net.SMTPAppender;

public class Main {

/**
* @param args the command line arguments
*/
private static final Logger lg=Logger.getLogger("com.something.log.Main");

public static void main(String[] args) {
URL url = Loader.getResource("log4j.xml");
DOMConfigurator.configure(url);
// create email appender
SMTPAppender smtpAppender = new SMTPAppender();
smtpAppender.setTo("PraveenKumar.J@something.com");
smtpAppender.setFrom("PraveenKumar.J@something.com");
smtpAppender.setSMTPHost("smtp.something.com");
smtpAppender.setSubject("Testing Email");
smtpAppender.setLocationInfo(false);
smtpAppender.setLayout(new PatternLayout("%d{ABSOLUTE} %5p %c{1}:%L - %m%n"));
smtpAppender.activateOptions();

// add email appender
lg.addAppender(smtpAppender);


}

}


log4j.xml
---------------

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="file"
class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="100KB" />
<param name="maxBackupIndex" value="5" />
<param name="File" value="logs/log.txt" />
<param name="threshold" value="info"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<appender name="mail" class="org.apache.log4j.net.SMTPAppender">
<param name="SMTPHost" value="smtp.something.com" />
<param name="From" value="PraveenKumar.J@something.com" />
<param name="To" value="PraveenKumar.J@something.com" />
<param name="Subject" value="[LOG] ..." />
<param name="BufferSize" value="1" />
<param name="threshold" value="error" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<priority value="debug"></priority>
<appender-ref ref="file" />
<appender-ref ref="mail"/>
</root>
</log4j:configuration>


log4j.properties
----------------------


log4j.rootLogger=warn, file, mail

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=D:\log.txt
log4j.appender.file.threshold=info
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

#email appender
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
#defines how othen emails are send
log4j.appender.mail.BufferSize=1
log4j.appender.mail.SMTPHost="smtp.something.com"
log4j.appender.mail.From=PraveenKumar.J@something.com
log4j.appender.mail.To=PraveenKumar.J@something.com
log4j.appender.mail.Subject=Log ...
log4j.appender.mail.threshold=error
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
-----------------------------------------------------------------------

Please help me in fixing the problem.....

Is this code correct to send email...??
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 1 2008
Added on Jan 4 2008
2 comments
1,723 views