Class SocketNode13

  • All Implemented Interfaces:
    java.lang.Runnable, Pauseable, Component

    public class SocketNode13
    extends ComponentBase
    implements java.lang.Runnable, Pauseable
    Read LoggingEvent objects sent from a remote client using Sockets (TCP). These logging events are logged according to local policy, as if they were generated locally.

    For example, the socket node might decide to log events to a local file and also resent them to a second socket node. Implementation lifted from org.apache.log4j.net.SocketNode in log4j 1.3 and renamed to prevent collision with log4j 1.2 implementation.

    • Field Detail

      • paused

        private boolean paused
        Paused state.
      • closed

        private boolean closed
        Closed state.
      • socket

        private java.net.Socket socket
        Socket.
      • receiver

        private Receiver receiver
        Receiver.
      • listenerList

        private java.util.List listenerList
        List of listeners.
    • Constructor Detail

      • SocketNode13

        public SocketNode13​(java.net.Socket s,
                            org.apache.log4j.spi.LoggerRepository hierarchy)
        Constructor for socket and logger repository.
        Parameters:
        s - socket
        hierarchy - logger repository
      • SocketNode13

        public SocketNode13​(java.net.Socket s,
                            Receiver r)
        Constructor for socket and receiver.
        Parameters:
        s - socket
        r - receiver
    • Method Detail

      • setListener

        public void setListener​(SocketNodeEventListener l)
        Deprecated.
        Now supports mutliple listeners, this method simply invokes the removeSocketNodeEventListener() to remove the listener, and then readds it.
        Set the event listener on this node.
        Parameters:
        l - listener
      • addSocketNodeEventListener

        public void addSocketNodeEventListener​(SocketNodeEventListener listener)
        Adds the listener to the list of listeners to be notified of the respective event.
        Parameters:
        listener - the listener to add to the list
      • removeSocketNodeEventListener

        public void removeSocketNodeEventListener​(SocketNodeEventListener listener)
        Removes the registered Listener from this instances list of listeners. If the listener has not been registered, then invoking this method has no effect.
        Parameters:
        listener - the SocketNodeEventListener to remove
      • run

        public void run()
        Deserialize events from socket until interrupted.
        Specified by:
        run in interface java.lang.Runnable
      • fireSocketClosedEvent

        private void fireSocketClosedEvent​(java.lang.Exception listenerException)
        Notifies all registered listeners regarding the closing of the Socket.
        Parameters:
        listenerException - listener exception
      • fireSocketOpened

        private void fireSocketOpened​(java.lang.String remoteInfo)
        Notifies all registered listeners regarding the opening of a Socket.
        Parameters:
        remoteInfo - remote info
      • setPaused

        public void setPaused​(boolean b)
        Sets if node is paused.
        Specified by:
        setPaused in interface Pauseable
        Parameters:
        b - new value
      • isPaused

        public boolean isPaused()
        Get if node is paused.
        Specified by:
        isPaused in interface Pauseable
        Returns:
        true if pause.
      • close

        public void close()
                   throws java.io.IOException
        Close the node and underlying socket
        Throws:
        java.io.IOException
      • isClosed

        public boolean isClosed()
        Get if node is closed.
        Returns:
        true if closed.