org.apache.log.output.net
Class SMTPOutputLogTarget

java.lang.Object
  extended by org.apache.log.output.AbstractTarget
      extended by org.apache.log.output.AbstractOutputTarget
          extended by org.apache.log.output.net.SMTPOutputLogTarget
All Implemented Interfaces:
ErrorAware, LogTarget, Closeable

public class SMTPOutputLogTarget
extends AbstractOutputTarget

Logkit output target that logs data via SMTP.

Since:
1.1.0
Version:
CVS $Id: SMTPOutputLogTarget.java,v 1.10 2004/03/28 05:05:43 niclas Exp $
Author:
Avalon Development Team, Marcus Crafter

Field Summary
private  StringBuffer m_buffer
           
private  long m_bufferTime
          The time that the first log entry in the current buffer arrived.
private  boolean m_debug
          Flag which controls whether debug is enabled for each message.
private  Address m_fromAddress
           
private  long m_maxDelayTime
          The maximun delay that a message will be allowed to wait in the queue before being sent.
private  int m_maxMsgSize
           
private  Message m_message
           
private  int m_msgSize
           
private  Thread m_runner
          Runner thread which is responsible for sending batched log entries in the background.
private  Session m_session
           
private  boolean m_shutdown
          Flag which will be set in the close method when it is time to shutdown.
private  String m_subject
           
private  Address[] m_toAddresses
           
 
Constructor Summary
SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, Formatter formatter)
          SMTPOutputLogTarget constructor.
SMTPOutputLogTarget(Session session, Address[] toAddresses, Address fromAddress, String subject, int maxMsgSize, int maxDelayTime, Formatter formatter)
          SMTPOutputLogTarget constructor.
 
Method Summary
 void close()
          Closes this log target.
private  void send()
          Helper method to send the currently buffered message, if existing.
 void setDebug(boolean flag)
          Method to enable/disable debugging on the mail session.
protected  void write(String data)
          Method to write data to the log target.
 
Methods inherited from class org.apache.log.output.AbstractOutputTarget
doProcessEvent, getFormatter, open
 
Methods inherited from class org.apache.log.output.AbstractTarget
getErrorHandler, isOpen, processEvent, setErrorHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

m_session

private final Session m_session

m_message

private Message m_message

m_toAddresses

private final Address[] m_toAddresses

m_fromAddress

private final Address m_fromAddress

m_subject

private final String m_subject

m_msgSize

private int m_msgSize

m_maxMsgSize

private final int m_maxMsgSize

m_buffer

private StringBuffer m_buffer

m_bufferTime

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


m_maxDelayTime

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


m_runner

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


m_shutdown

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


m_debug

private boolean m_debug
Flag which controls whether debug is enabled for each message.

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

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.

Overrides:
write in class AbstractOutputTarget
Parameters:
data - logging data to be written to target

close

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

Specified by:
close in interface Closeable
Overrides:
close in class AbstractOutputTarget

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

send

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



Copyright © 2003-2004 The Apache Software Foundation. All Rights Reserved.