org.apache.log4j.net

Class SMTPAppender

Implemented Interfaces:
Appender, OptionHandler

public class SMTPAppender
extends AppenderSkeleton

Send an e-mail when a specific logging event occurs, typically on errors or fatal errors.

The number of logging events delivered in this e-mail depend on the value of BufferSize option. The SMTPAppender keeps only the last BufferSize logging events in its cyclic buffer. This keeps memory requirements at a reasonable level while still delivering useful application context.

Author:
Ceki Gülcü
Since:
1.0

Field Summary

protected CyclicBuffer
cb
protected TriggeringEventEvaluator
evaluator
protected Message
msg

Fields inherited from class org.apache.log4j.AppenderSkeleton

closed, errorHandler, headFilter, layout, name, tailFilter, threshold

Constructor Summary

SMTPAppender()
The default constructor will instantiate the appender with a TriggeringEventEvaluator that will trigger on events with level ERROR or higher.
SMTPAppender(TriggeringEventEvaluator evaluator)
Use evaluator passed as parameter as the TriggeringEventEvaluator for this SMTPAppender.

Method Summary

void
activateOptions()
Activate the specified options, such as the smtp host, the recipient, from, etc.
void
append(LoggingEvent event)
Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent.
protected boolean
checkEntryConditions()
This method determines if there is a sense in attempting to append.
void
close()
Release any resources allocated within the appender such as file handles, network connections, etc.
int
getBufferSize()
Returns value of the BufferSize option.
String
getEvaluatorClass()
Returns value of the EvaluatorClass option.
String
getFrom()
Returns value of the From option.
boolean
getLocationInfo()
Returns value of the LocationInfo option.
String
getSMTPHost()
Returns value of the SMTPHost option.
String
getSubject()
Returns value of the Subject option.
String
getTo()
Returns value of the To option.
boolean
requiresLayout()
The SMTPAppender requires a layout.
protected void
sendBuffer()
Send the contents of the cyclic buffer as an e-mail message.
void
setBufferSize(int bufferSize)
The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer.
void
setEvaluatorClass(String value)
The EvaluatorClass option takes a string value representing the name of the class implementing the TriggeringEventEvaluator interface.
void
setFrom(String from)
The From option takes a string value which should be a e-mail address of the sender.
void
setLocationInfo(boolean locationInfo)
The LocationInfo option takes a boolean value.
void
setSMTPHost(String smtpHost)
The SMTPHost option takes a string value which should be a the host name of the SMTP server that will send the e-mail message.
void
setSubject(String subject)
The Subject option takes a string value which should be a the subject of the e-mail message.
void
setTo(String to)
The To option takes a string value which should be a comma separated list of e-mail address of the recipients.

Methods inherited from class org.apache.log4j.AppenderSkeleton

activateOptions, addFilter, append, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold

Field Details

cb

protected CyclicBuffer cb

evaluator

protected TriggeringEventEvaluator evaluator

msg

protected Message msg

Constructor Details

SMTPAppender

public SMTPAppender()

SMTPAppender

public SMTPAppender(TriggeringEventEvaluator evaluator)
Use evaluator passed as parameter as the TriggeringEventEvaluator for this SMTPAppender.

Method Details

activateOptions

public void activateOptions()
Activate the specified options, such as the smtp host, the recipient, from, etc.
Specified by:
activateOptions in interface OptionHandler
Overrides:
activateOptions in interface AppenderSkeleton

append

public void append(LoggingEvent event)
Perform SMTPAppender specific appending actions, mainly adding the event to a cyclic buffer and checking if the event triggers an e-mail to be sent.
Overrides:
append in interface AppenderSkeleton

checkEntryConditions

protected boolean checkEntryConditions()
This method determines if there is a sense in attempting to append.

It checks whether there is a set output target and also if there is a set layout. If these checks fail, then the boolean value false is returned.


close

public void close()
Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Specified by:
close in interface Appender
Since:
0.8.4

getBufferSize

public int getBufferSize()
Returns value of the BufferSize option.

getEvaluatorClass

public String getEvaluatorClass()
Returns value of the EvaluatorClass option.

getFrom

public String getFrom()
Returns value of the From option.

getLocationInfo

public boolean getLocationInfo()
Returns value of the LocationInfo option.

getSMTPHost

public String getSMTPHost()
Returns value of the SMTPHost option.

getSubject

public String getSubject()
Returns value of the Subject option.

getTo

public String getTo()
Returns value of the To option.

requiresLayout

public boolean requiresLayout()
Specified by:
requiresLayout in interface Appender

sendBuffer

protected void sendBuffer()
Send the contents of the cyclic buffer as an e-mail message.

setBufferSize

public void setBufferSize(int bufferSize)
The BufferSize option takes a positive integer representing the maximum number of logging events to collect in a cyclic buffer. When the BufferSize is reached, oldest events are deleted as new events are added to the buffer. By default the size of the cyclic buffer is 512 events.

setEvaluatorClass

public void setEvaluatorClass(String value)
The EvaluatorClass option takes a string value representing the name of the class implementing the TriggeringEventEvaluator interface. A corresponding object will be instantiated and assigned as the triggering event evaluator for the SMTPAppender.

setFrom

public void setFrom(String from)
The From option takes a string value which should be a e-mail address of the sender.

setLocationInfo

public void setLocationInfo(boolean locationInfo)
The LocationInfo option takes a boolean value. By default, it is set to false which means there will be no effort to extract the location information related to the event. As a result, the layout that formats the events as they are sent out in an e-mail is likely to place the wrong location information (if present in the format).

Location information extraction is comparatively very slow and should be avoided unless performance is not a concern.


setSMTPHost

public void setSMTPHost(String smtpHost)
The SMTPHost option takes a string value which should be a the host name of the SMTP server that will send the e-mail message.

setSubject

public void setSubject(String subject)
The Subject option takes a string value which should be a the subject of the e-mail message.

setTo

public void setTo(String to)
The To option takes a string value which should be a comma separated list of e-mail address of the recipients.

Copyright 2000-2005 Apache Software Foundation.