Package org.apache.log4j.net
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>
-
-
Constructor Summary
Constructors Constructor Description MulticastAppender()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivateOptions()Open the multicast sender for the RemoteHost and Port.voidappend(org.apache.log4j.spi.LoggingEvent event)voidcleanUp()Close the Socket and release the underlying connector thread if it has been createdvoidclose()Close this appender.StringgetApplication()Returns value of the App option.StringgetEncoding()Returns value of the Encoding option.booleangetLocationInfo()Returns value of the LocationInfo option.intgetPort()Returns value of the Port option.StringgetRemoteHost()Returns value of the RemoteHost option.intgetTimeToLive()Returns value of the Time to Live option.booleanisActive()Get if item is active.booleanisAdvertiseViaMulticastDNS()booleanrequiresLayout()Gets whether appender requires a layout.voidsetAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)voidsetApplication(String app)The App option takes a string value which should be the name of the application getting logged.voidsetEncoding(String encoding)The Encoding option specifies how the bytes are encoded.voidsetLocationInfo(boolean locationInfo)The LocationInfo option takes a boolean value.voidsetPort(int port)The Port option takes a positive integer representing the port where multicast packets will be sent.voidsetRemoteHost(String host)The RemoteHost option takes a string value which should be the host name or ipaddress to send the multicast packets.voidsetTimeToLive(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 java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.log4j.net.NetworkBased
getName
-
-
-
-
Field Detail
-
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:
- Constant Field Values
-
-
Method Detail
-
activateOptions
public void activateOptions()
Open the multicast sender for the RemoteHost and Port.- Specified by:
activateOptionsin interfaceorg.apache.log4j.spi.OptionHandler- Overrides:
activateOptionsin classorg.apache.log4j.AppenderSkeleton
-
close
public void close()
Close this appender.This will mark the appender as closed and call then
cleanUp()method.- Specified by:
closein interfaceorg.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:
appendin classorg.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.
-
isActive
public boolean isActive()
Description copied from interface:NetworkBasedGet if item is active.- Specified by:
isActivein interfaceNetworkBased- Returns:
- if true, item is active.
-
requiresLayout
public boolean requiresLayout()
Gets whether appender requires a layout.- Specified by:
requiresLayoutin interfaceorg.apache.log4j.Appender- Returns:
- false
-
isAdvertiseViaMulticastDNS
public boolean isAdvertiseViaMulticastDNS()
-
setAdvertiseViaMulticastDNS
public void setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)
-
-