Class MulticastAppender

java.lang.Object
org.apache.log4j.AppenderSkeleton
org.apache.log4j.net.MulticastAppender
All Implemented Interfaces:
org.apache.log4j.Appender, NetworkBased, PortBased, org.apache.log4j.spi.OptionHandler

public class MulticastAppender extends org.apache.log4j.AppenderSkeleton implements PortBased
Multicast-based Appender. Works in conjunction with the MulticastReceiver, which expects a LoggingEvent encoded using XMLLayout.

Sends log information as a multicast datagrams.

Messages are not sent as LoggingEvent objects but as text after applying XMLLayout.

The port and remoteHost properties can be set in configuration properties. By setting the remoteHost to a broadcast address any number of clients can listen for log messages.

This was inspired and really extended/copied from SocketAppender. Please see the docs for the proper credit to the authors of that class.

Author:
Kevin Brown, Scott Deboy <sdeboy@apache.org>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The MulticastDNS zone advertised by a MulticastAppender the MulticastAppender also adds a 'multicastAddress' property with the multicast address value as a string

    Fields inherited from class org.apache.log4j.AppenderSkeleton

    closed, errorHandler, headFilter, layout, name, tailFilter, threshold
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Open the multicast sender for the RemoteHost and Port.
    void
    append(org.apache.log4j.spi.LoggingEvent event)
     
    void
    Close the Socket and release the underlying connector thread if it has been created
    void
    Close this appender.
    Returns value of the App option.
    Returns value of the Encoding option.
    boolean
    Returns value of the LocationInfo option.
    int
    Returns value of the Port option.
    Returns value of the RemoteHost option.
    int
    Returns value of the Time to Live option.
    boolean
    Get if item is active.
    boolean
     
    boolean
    Gets whether appender requires a layout.
    void
    setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)
     
    void
    The App option takes a string value which should be the name of the application getting logged.
    void
    setEncoding(String encoding)
    The Encoding option specifies how the bytes are encoded.
    void
    setLocationInfo(boolean locationInfo)
    The LocationInfo option takes a boolean value.
    void
    setPort(int port)
    The Port option takes a positive integer representing the port where multicast packets will be sent.
    void
    The RemoteHost option takes a string value which should be the host name or ipaddress to send the multicast packets.
    void
    setTimeToLive(int timeToLive)
    The Time to live option takes a positive integer representing the time to live value.

    Methods inherited from class org.apache.log4j.AppenderSkeleton

    addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold

    Methods inherited from class Object

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

    Methods inherited from interface NetworkBased

    getName
  • Field Details

    • ZONE

      public static final String ZONE
      The MulticastDNS zone advertised by a MulticastAppender the MulticastAppender also adds a 'multicastAddress' property with the multicast address value as a string
      See Also:
  • Constructor Details

    • MulticastAppender

      public MulticastAppender()
  • Method Details

    • activateOptions

      public void activateOptions()
      Open the multicast sender for the RemoteHost and Port.
      Specified by:
      activateOptions in interface org.apache.log4j.spi.OptionHandler
      Overrides:
      activateOptions in class org.apache.log4j.AppenderSkeleton
    • close

      public void close()
      Close this appender.

      This will mark the appender as closed and call then cleanUp() method.

      Specified by:
      close in interface org.apache.log4j.Appender
    • cleanUp

      public void cleanUp()
      Close the Socket and release the underlying connector thread if it has been created
    • append

      public void append(org.apache.log4j.spi.LoggingEvent event)
      Specified by:
      append in class org.apache.log4j.AppenderSkeleton
    • setRemoteHost

      public void setRemoteHost(String host)
      The RemoteHost option takes a string value which should be the host name or ipaddress to send the multicast packets.
    • getRemoteHost

      public String getRemoteHost()
      Returns value of the RemoteHost option.
    • setLocationInfo

      public void setLocationInfo(boolean locationInfo)
      The LocationInfo option takes a boolean value. If true, the information sent to the remote host will include location information. By default no location information is sent to the server.
    • getLocationInfo

      public boolean getLocationInfo()
      Returns value of the LocationInfo option.
    • setEncoding

      public void setEncoding(String encoding)
      The Encoding option specifies how the bytes are encoded. If this option is not specified, the System encoding is used.
    • getEncoding

      public String getEncoding()
      Returns value of the Encoding option.
    • setApplication

      public void setApplication(String app)
      The App option takes a string value which should be the name of the application getting logged. If property was already set (via system property), don't set here.
    • getApplication

      public String getApplication()
      Returns value of the App option.
    • setTimeToLive

      public void setTimeToLive(int timeToLive)
      The Time to live option takes a positive integer representing the time to live value.
    • getTimeToLive

      public int getTimeToLive()
      Returns value of the Time to Live option.
    • setPort

      public void setPort(int port)
      The Port option takes a positive integer representing the port where multicast packets will be sent.
    • getPort

      public int getPort()
      Returns value of the Port option.
      Specified by:
      getPort in interface PortBased
      Returns:
      int port number
    • isActive

      public boolean isActive()
      Description copied from interface: NetworkBased
      Get if item is active.
      Specified by:
      isActive in interface NetworkBased
      Returns:
      if true, item is active.
    • requiresLayout

      public boolean requiresLayout()
      Gets whether appender requires a layout.
      Specified by:
      requiresLayout in interface org.apache.log4j.Appender
      Returns:
      false
    • isAdvertiseViaMulticastDNS

      public boolean isAdvertiseViaMulticastDNS()
    • setAdvertiseViaMulticastDNS

      public void setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)