I just found everything that was missing by working through the log4j-dev
and log4j-user mailing list. So here is my conclusion as a simple example:
My main calling class:
<class Log4jEmailTest>
import org.apache.log4j.Appender;
import org.apache.log4j.net.SMTPAppender;
import org.apache.log4j.Category;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.PropertyConfigurator;
import java.util.Enumeration;
import java.io.File;
import TriggerAfterXLogEvents;
public class Log4jEmailTest
{
public static Category CAT =
org.apache.log4j.Category.getInstance(Log4jEmailTest.class.getName());
public static void main(String[] args)
{
String fileName = "c:/tmp/log4j.config";
File checkFile = new File(fileName);
if (fileName != null && new File(fileName).exists())
{
PropertyConfigurator.configure(fileName);
CAT.error("File "+checkFile.getName()+" found!");
}
else
{
CAT.debug(" file or fileName is missing");
}
for (int i=0;i<15;i++)
{
CAT.error("Test error, error, test, test, fatal error i = "+i);
}
}
}
</class Log4jEmailTest>
My log4j configuration:
<configuration file>
#------------------------------------------root
category-----------------------
# Set root category priority to DEBUG and its appenders to sysout.
log4j.rootCategory=DEBUG, sysout, SMTPTest
# sysout is set to be a FileAppender which outputs to System.out
log4j.appender.sysout=org.apache.log4j.ConsoleAppender
# the following line only if all the logging should to System.out as well
#log4j.appender.sysout.File=System.out
# sysout also uses PatternLayout.
log4j.appender.sysout.layout=org.apache.log4j.PatternLayout
log4j.appender.sysout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
#------------------------------------------SMTP appender-------------------
# SMTP appender
#log4j.appender.SMTPTest=org.apache.log4j.net.SMTPAppender
# SMTPAppender layout settings
log4j.appender.SMTPTest.layout=org.apache.log4j.PatternLayout
log4j.appender.SMTPTest.layout.ConversionPattern=%d %-4r [%t] %-5p (%c:%L)
%x - %m%n
# SMTPAppender email settings
[EMAIL PROTECTED]
log4j.appender.SMTPTest.SMTPHost=192.168.1.21
log4j.appender.SMTPTest.Subject=SMTPappender-Test
[EMAIL PROTECTED]
log4j.appender.SMTPTest.BufferSize=5
log4j.appender.SMTPTest.EvaluatorClass=TriggerAfter1LogEvents
</configuration file>
and my class TriggerAfterXLogEvents. Otherwise you would get for every
logging event one mail.
<TriggerAfterXLogEvents>
import org.apache.log4j.spi.TriggeringEventEvaluator;
import org.apache.log4j.spi.LoggingEvent;
public class TriggerAfterXLogEvents implements TriggeringEventEvaluator {
private int count;
public TriggerAfterXLogEvents() {
count = 0;
}
public boolean isTriggeringEvent(LoggingEvent event) {
if (count >= 5) // <- put your required amount of logging events here
{
count = 0;
return true;
}
else {
count++;
return false;
}
}
}
</TriggerAfterXLogEvents>
As you can see, I set the count >=5. Of course you can configure this as you
like it. So now you get one mail every fifth ERROR of FATAL error event.
Cheers,
Thomas
P.S.: Don't forget the include the required JavaMail API & the JavaBeans
Activation Framework in you classpath.
-----Original Message-----
From: Fuerst, Thomas (web.de) [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 21, 2001 4:02 PM
To: LOG4J Users Mailing List
Subject: RE: settings for SMTPAppender in a config file
Hi Sven,
thank you for your quick response. I just found out how to set these missing
settings, but there is still something missing. I don't get any Mails so
far. I think log4j wants me to define a certain trigger. I already found out
that there is a class LoggingEvent which somehow can be check by using the
method:
public boolean isTriggeringEvent(LoggingEvent event)
of the TriggeringEventEvaluator interface. I still don't know how to use
this triggering.
I don't get it. How does it work.
Thomas
-----Original Message-----
From: Scheil, Sven [mailto:[EMAIL PROTECTED]]
Sent: Thursday, June 21, 2001 3:44 PM
To: 'LOG4J Users Mailing List'
Subject: AW: settings for SMTPAppender in a config file
Hi Thomas,
hier ist mein config file für den SMTPAppender:
log4j.appender.A3=org.apache.log4j.net.SMTPAppender
[EMAIL PROTECTED]
[EMAIL PROTECTED]
log4j.appender.A3.Subject=EVA Fehler
log4j.appender.A3.SMTPHost=1.2.3.123
log4j.appender.A3.BufferSize=5
Gruß
Sven
> -----Ursprüngliche Nachricht-----
> Von: Fuerst, Thomas (web.de) [mailto:[EMAIL PROTECTED]]
> Gesendet am: Donnerstag, 21. Juni 2001 15:06
> An: 'LOG4J Users Mailing List'
> Betreff: settings for SMTPAppender in a config file
>
> Can anybody tell who to tell log4j my 'To' and my 'SMTP-Host'
> while using a
> config file.
>
> I already have these entry in my config file:
>
> log4j.rootCategory=FATAL, SMTPTest
>
> # SMTP appender
> log4j.appender.SMTPTest=org.apache.log4j.net.SMTPAppender
>
> # SMTPAppender layout settings
>
> log4j.appender.SMTPAppender.layout=org.apache.log4j.PatternLayout
> log4j.appender.SMTPAppender.layout.ConversionPattern=%d
> %-4r [%t] %-5p
> (%c:%L) %x - %m%n
>
> # SMTPAppender email settings
> log4j.appender.SMTPAppender ????
>
> and this Java code:
>
> import org.apache.log4j.net.SMTPAppender;
> import org.apache.log4j.Category;
> import org.apache.log4j.BasicConfigurator;
> import org.apache.log4j.PropertyConfigurator;
> //PropertyConfigurator
>
> public class Log4jEmailTest
> {
> public static Category CAT =
> org.apache.log4j.Category.getInstance(Log4jEmailTest.class.getName());
>
> public static void main(String[] args)
> {
> PropertyConfigurator.configure("c:/tmp/log4j.config");
> // BasicConfigurator.configure();
> SMTPAppender emailAppender = new SMTPAppender();
> emailAppender.setSMTPHost("192.168.1.21");
>
> emailAppender.setTo("[EMAIL PROTECTED],thomasfuerst@
> web.de");
> emailAppender.setFrom("[EMAIL PROTECTED]");
> CAT.addAppender(emailAppender);
> CAT.fatal("Test error, error, test, test, fatal error");
> //CAT.error("Test error, error, test, test, fatal error");
> CAT.debug("Test error, error, test, test, fatal error");
> }
> }
>
> So how can I configure my 'To' & 'SMTP host?
>
> Thomas
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]