How to send a mail using SMTPAppender in Log4j..?
807603Jan 4 2008 — edited Jan 4 2008Hello 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...??