You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by ha...@apache.org on 2001/12/22 12:29:29 UTC

cvs commit: jakarta-avalon-logkit/src/java/org/apache/log/output/net SocketOutputTarget.java

hammant     01/12/22 03:29:29

  Added:       src/java/org/apache/log/output/net SocketOutputTarget.java
  Log:
  Submission from Rajendra Ghorpade (RGhorpade@onebridge.de)
  
  Revision  Changes    Path
  1.1                  jakarta-avalon-logkit/src/java/org/apache/log/output/net/SocketOutputTarget.java
  
  Index: SocketOutputTarget.java
  ===================================================================
  package org.apache.log.output.net;
  
  import java.io.IOException;
  import java.io.OutputStream;
  import java.io.ObjectOutputStream;
  
  import java.net.Socket;
  import java.net.SocketException;
  import java.net.InetAddress;
  import java.net.UnknownHostException;
  
  import org.apache.log.LogEvent;
  import org.apache.log.output.AbstractOutputTarget;
  
  /**
   * SocketOutputTarget
   *
   * Useful for writing the output to a TCP/IP client socket.
   *
   * @author <a href="mailto:rghorpade@onebridge.de"> Rajendra Ghorpade </a>
   * @version
   */
  public class SocketOutputTarget extends AbstractOutputTarget
  {
  
      /** Socket to communicate with the server */
      private Socket m_socket;
  
      /** Output strem to write the log */
      private ObjectOutputStream m_outputStream;
  
      /**
       * Creates output target with the end point  specified by the address and port
       *
       * @param address end point address
       * @param port the end point port
       * @exception IOException if an I/O error ocurrs when creating socket
       */
      public SocketOutputTarget( final InetAddress address,
                                 final int port )
      throws IOException
      {
          m_socket = new Socket( address, port );
          m_outputStream = new ObjectOutputStream( m_socket.getOutputStream() );
          super.open();
      }
  
      /**
       * Creates the output target with the end point specified by host and port
       *
       * @param host end point host
       * @param port the end point port
       * @exception IOException if an I/O error ocurrs when creating socket
       */
      public SocketOutputTarget( final String host,
                                 final int port )
      throws IOException
      {
          m_socket = new Socket( host, port );
          m_outputStream = new ObjectOutputStream( m_socket.getOutputStream() );
          super.open();
      }
  
      /**
       * Writes the output as a LogEvent without formatting.
       * Formatting ia applied on the server side where it is log.
       *
       * @param event the LogEvent
       */
      protected void write( LogEvent event )
      {
          try
          {
              m_outputStream.writeObject( event );
          }
          catch( final IOException ioex )
          {
              getErrorHandler().error( "Error writting to socket", ioex, null );
          }
      }
  
      /**
       * To process the LogEvent
       *
       * @param event the LogEvent
       */
      protected void doProcessEvent( LogEvent event )
      {
          write( event );
      }
  
      /**
       * Shutdown target.
       * Attempting to write to target after close() will cause errors to be logged.
       */
      public synchronized void close()
      {
          super.close();
          m_socket = null;
      }
  }
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>