org.apache.log.output.net

Class SMTPOutputLogTarget

public class SMTPOutputLogTarget extends AbstractOutputTarget

Logkit output target that logs data via SMTP.

Since: 1.1.0

Version: $Id: SMTPOutputLogTarget.java 231246 2005-08-10 09:32:43 -0500 (Wed, 10 Aug 2005) leif $

Author: Avalon Development Team Marcus Crafter

Field Summary
StringBufferm_buffer
Buffer containing current mail.
longm_bufferTime
The time that the first log entry in the current buffer arrived.
Addressm_fromAddress
Address to mail is to be listed as sent from.
longm_maxDelayTime
The maximun delay that a message will be allowed to wait in the queue before being sent.
intm_maxMsgSize
Maximum size of mail, in units of log events.
Messagem_message
Message to be sent.
intm_msgSize
Current size of mail, in units of log events.
Threadm_runner
Runner thread which is responsible for sending batched log entries in the background.
Sessionm_session
Mail session.
booleanm_shutdown
Flag which will be set in the close method when it is time to shutdown.
Stringm_subject
Mail subject.
Address[]m_toAddresses
Address to sent mail to.
Constructor Summary
SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, int maxDelayTime, Formatter formatter)
SMTPOutputLogTarget constructor.
SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, Formatter formatter)
SMTPOutputLogTarget constructor.
Method Summary
voidclose()
Closes this log target.
voidsend()
Helper method to send the currently buffered message, if existing.
voidsetDebug(boolean flag)
Method to enable/disable debugging on the mail session.
protected voidwrite(String data)
Method to write data to the log target.

Field Detail

m_buffer

private StringBuffer m_buffer
Buffer containing current mail.

m_bufferTime

private long m_bufferTime
The time that the first log entry in the current buffer arrived.

m_fromAddress

private final Address m_fromAddress
Address to mail is to be listed as sent from.

m_maxDelayTime

private long m_maxDelayTime
The maximun delay that a message will be allowed to wait in the queue before being sent.

m_maxMsgSize

private final int m_maxMsgSize
Maximum size of mail, in units of log events.

m_message

private Message m_message
Message to be sent.

m_msgSize

private int m_msgSize
Current size of mail, in units of log events.

m_runner

private Thread m_runner
Runner thread which is responsible for sending batched log entries in the background.

m_session

private final Session m_session
Mail session.

m_shutdown

private boolean m_shutdown
Flag which will be set in the close method when it is time to shutdown.

m_subject

private final String m_subject
Mail subject.

m_toAddresses

private final Address[] m_toAddresses
Address to sent mail to.

Constructor Detail

SMTPOutputLogTarget

public SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, int maxDelayTime, Formatter formatter)
SMTPOutputLogTarget constructor. It creates a logkit output target capable of logging to SMTP (ie. email, email gateway) targets.

Parameters: session mail session to be used toAddresses addresses logs should be sent to fromAddress address logs say they come from subject subject line logs should use maxMsgSize maximum size of any log mail, in units of log events. If this is greater than one but maxDelayTime is 0 then log events may stay queued for a long period of time if less than the specified number of messages are logged. Any unset messages will be sent when the target is closed. maxDelayTime specifies the longest delay in seconds that a log entry will be queued before being sent. Setting this to a value larger than 0 will cause a background thread to be used to queue up and send messages. Ignored if maxMsgSize is 1 or less. formatter log formatter to use

SMTPOutputLogTarget

public SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, Formatter formatter)
SMTPOutputLogTarget constructor. It creates a logkit output target capable of logging to SMTP (ie. email, email gateway) targets.

Parameters: session mail session to be used toAddresses addresses logs should be sent to fromAddress address logs say they come from subject subject line logs should use maxMsgSize maximum size of any log mail, in units of log events. Log events may stay queued for a long period of time if less than the specified number of messages are logged. Any unset messages will be sent when the target is closed. formatter log formatter to use

Method Detail

close

public void close()
Closes this log target. Sends currently buffered message, if existing.

send

private void send()
Helper method to send the currently buffered message, if existing.

Only called when synchronized.

setDebug

public void setDebug(boolean flag)
Method to enable/disable debugging on the mail session.

Parameters: flag true to enable debugging, false to disable it

write

protected void write(String data)
Method to write data to the log target. Logging data is stored in an internal buffer until the size limit is reached. When this happens the data is sent to the SMTP target, and the buffer is reset for subsequent events.

Parameters: data logging data to be written to target