org.apache.log4j.receivers.net

## Class SocketReceiver

- java.lang.Object
- - org.apache.log4j.component.spi.ComponentBase
  - - org.apache.log4j.component.plugins.PluginSkeleton
    - - org.apache.log4j.component.plugins.Receiver
      - - org.apache.log4j.receivers.net.SocketReceiver

- All Implemented Interfaces:
    Runnable, Pauseable, Plugin, Component, Thresholdable, NetworkBased, PortBased, org.apache.log4j.spi.OptionHandler

      public class SocketReceiver
      extends Receiver
      implements Runnable, PortBased, Pauseable

  SocketReceiver receives a remote logging event on a configured socket and "posts" it to a LoggerRepository as if the event was generated locally. This class is designed to receive events from the SocketAppender class (or classes that send compatible events).

  Once the event has been "posted", it will be handled by the appenders currently configured in the LoggerRespository.

  Author:
    Mark Womack, Scott Deboy (sdeboy@apache.org), Paul Smith (psmith@apache.org)

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `port` Port.
    `static String` | `ZONE` The MulticastDNS zone advertised by a SocketReceiver

    - ### Fields inherited from class org.apache.log4j.component.plugins.Receiver

      `thresholdLevel`

    - ### Fields inherited from class org.apache.log4j.component.plugins.PluginSkeleton

      `active, name`

    - ### Fields inherited from class org.apache.log4j.component.spi.ComponentBase

      `repository`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SocketReceiver()` Create new instance.
    `SocketReceiver(int p)` Create new instance.
    `SocketReceiver(int p, org.apache.log4j.spi.LoggerRepository repo)` Create new instance.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `activateOptions()` Starts the SocketReceiver with the current options.
    `void` | `addSocketNodeEventListener(SocketNodeEventListener l)` Adds the listener to the list of listeners to be notified of the respective event.
    `void` | `doPost(org.apache.log4j.spi.LoggingEvent event)` Posts the logging event to a logger in the configured logger repository.
    `Vector` | `getConnectedSocketDetails()` Returns a Vector of SocketDetail representing the IP/Domain name of the currently connected sockets that this receiver has been responsible for creating.
    `SocketNodeEventListener` | `getListener()` Deprecated. This receiver now supports multiple listeners
    `int` | `getPort()` Returns the Port # that this net based thing is using.
    `boolean` | `isAdvertiseViaMulticastDNS()`
    `boolean` | `isEquivalent(Plugin testPlugin)` Returns true if the receiver is the same class and they are configured for the same properties, and super class also considers them to be equivalent.
    `boolean` | `isPaused()` Get paused state.
    `void` | `removeSocketNodeEventListener(SocketNodeEventListener l)` Removes the registered Listener from this instances list of listeners.
    `void` | `run()` Loop, accepting new socket connections.
    `protected void` | `setActive(boolean b)` Sets the flag to indicate if receiver is active or not.
    `void` | `setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)`
    `void` | `setListener(SocketNodeEventListener l)` Deprecated. This receiver now supports multiple listeners and so this method simply removes the listener (if there already) and readds it to the list. The passed listener will also be returned via the getListener() method still, but this is also deprecated
    `void` | `setPaused(boolean b)` Set paused state.
    `void` | `setPort(int p)`
    `void` | `shutdown()` Called when the receiver should be stopped.

    - ### Methods inherited from class org.apache.log4j.component.plugins.Receiver

      `getThreshold, isAsSevereAsThreshold, setThreshold`

    - ### Methods inherited from class org.apache.log4j.component.plugins.PluginSkeleton

      `addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getLoggerRepository, getName, isActive, removePropertyChangeListener, removePropertyChangeListener, setLoggerRepository, setName`

    - ### Methods inherited from class org.apache.log4j.component.spi.ComponentBase

      `getLogger, getNonFloodingLogger, resetErrorCount`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.log4j.receivers.net.NetworkBased

      `getName, isActive`

- - ### Field Detail

    - #### port

          protected int port

      Port.

    - #### ZONE

          public static final String ZONE

      The MulticastDNS zone advertised by a SocketReceiver
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SocketReceiver

          public SocketReceiver()

      Create new instance.

    - #### SocketReceiver

          public SocketReceiver(int p)

      Create new instance.
      Parameters:
        `p` - port

    - #### SocketReceiver

          public SocketReceiver(int p,
                        org.apache.log4j.spi.LoggerRepository repo)

      Create new instance.
      Parameters:
        `p` - port
        `repo` - logger repository

  - ### Method Detail

    - #### getPort

          public int getPort()

      Description copied from interface: `PortBased`
      Returns the Port # that this net based thing is using.
      Specified by:
        `getPort` in interface `PortBased`
      Returns:
        int port number

    - #### setPort

          public void setPort(int p)

    - #### isEquivalent

          public boolean isEquivalent(Plugin testPlugin)

      Returns true if the receiver is the same class and they are configured for the same properties, and super class also considers them to be equivalent. This is used by PluginRegistry when determining if the a similarly configured receiver is being started.
      Specified by:
        `isEquivalent` in interface `Plugin`
      Overrides:
        `isEquivalent` in class `PluginSkeleton`
      Parameters:
        `testPlugin` - The plugin to test equivalency against.
      Returns:
        boolean True if the testPlugin is equivalent to this plugin.

    - #### activateOptions

          public void activateOptions()

      Starts the SocketReceiver with the current options.
      Specified by:
        `activateOptions` in interface `org.apache.log4j.spi.OptionHandler`

    - #### shutdown

          public void shutdown()

      Called when the receiver should be stopped. Closes the server socket and all of the open sockets.
      Specified by:
        `shutdown` in interface `Plugin`

    - #### setActive

          protected void setActive(boolean b)

      Sets the flag to indicate if receiver is active or not.
      Parameters:
        `b` - new value

    - #### setAdvertiseViaMulticastDNS

          public void setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)

    - #### isAdvertiseViaMulticastDNS

          public boolean isAdvertiseViaMulticastDNS()

    - #### run

          public void run()

      Loop, accepting new socket connections.
      Specified by:
        `run` in interface `Runnable`

    - #### getConnectedSocketDetails

          public Vector getConnectedSocketDetails()

      Returns a Vector of SocketDetail representing the IP/Domain name of the currently connected sockets that this receiver has been responsible for creating.
      Returns:
        Vector of SocketDetails

    - #### getListener

          public SocketNodeEventListener getListener()

      Deprecated. This receiver now supports multiple listeners
      Returns the currently configured SocketNodeEventListener that will be automatically set for each SocketNode created.
      Returns:
        SocketNodeEventListener currently configured

    - #### addSocketNodeEventListener

          public void addSocketNodeEventListener(SocketNodeEventListener l)

      Adds the listener to the list of listeners to be notified of the respective event.
      Parameters:
        `l` - the listener to add to the list

    - #### removeSocketNodeEventListener

          public void removeSocketNodeEventListener(SocketNodeEventListener l)

      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:
        `l` - the SocketNodeEventListener to remove

    - #### setListener

          public void setListener(SocketNodeEventListener l)

      Deprecated. This receiver now supports multiple listeners and so this method simply removes the listener (if there already) and readds it to the list. The passed listener will also be returned via the getListener() method still, but this is also deprecated
      Sets the SocketNodeEventListener that will be used for each created SocketNode.
      Parameters:
        `l` - the listener to set on each creation of a SocketNode

    - #### isPaused

          public boolean isPaused()

      Get paused state.
      Specified by:
        `isPaused` in interface `Pauseable`
      Returns:
        paused state.

    - #### setPaused

          public void setPaused(boolean b)

      Set paused state.
      Specified by:
        `setPaused` in interface `Pauseable`
      Parameters:
        `b` - new value

    - #### doPost

          public void doPost(org.apache.log4j.spi.LoggingEvent event)

      Posts the logging event to a logger in the configured logger repository.
      Overrides:
        `doPost` in class `Receiver`
      Parameters:
        `event` - the log event to post to the local log4j environment.

Copyright © 2013 The Apache Software Foundation. Licensed under the Apache License, Version 2.0

Apache Extras for Apache log4j, Apache log4j and Apache are trademarks of the Apache Software Foundation.