Class 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 Details

    • m_session

      private final javax.mail.Session m_session
    • m_message

      private javax.mail.Message m_message
    • m_toAddresses

      private final javax.mail.Address[] m_toAddresses
    • m_fromAddress

      private final javax.mail.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 Details

    • SMTPOutputLogTarget

      public SMTPOutputLogTarget(javax.mail.Session session, javax.mail.Address[] toAddresses, javax.mail.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(javax.mail.Session session, javax.mail.Address[] toAddresses, javax.mail.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 Details

    • 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.