public class SocketAppender extends AppenderSkeleton
LoggingEvent
objects to a remote a log server,
usually a SocketNode
.
The SocketAppender has the following properties:
SocketNode
, remote logging is
non-intrusive as far as the log event is concerned. In other
words, the event will be logged with the same time stamp, NDC
, location info as if it were logged locally by
the client.
LoggingEvent
object to the server side.
On the other hand, if the network link is up, but the server is down, the client will not be blocked when making log requests but the log events will be lost due to server unavailability.
SocketAppender
is no longer
attached to any category, it will not be garbage collected in
the presence of a connector thread. A connector thread exists
only if the connection to the server is down. To avoid this
garbage collection problem, you should close()
the the
SocketAppender
explicitly. See also next item.
Long lived applications which create/destroy many
SocketAppender
instances should be aware of this
garbage collection problem. Most other applications can safely
ignore it.
SocketAppender
exits
before the SocketAppender
is closed either
explicitly or subsequent to garbage collection, then there might
be untransmitted data in the pipe which might be lost. This is a
common problem on Windows based systems.
To avoid lost data, it is usually sufficient to close()
the SocketAppender
either explicitly or by
calling the LogManager.shutdown()
method
before exiting the application.
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_PORT
The default port number of remote logging server (4560).
|
static String |
ZONE
The MulticastDNS zone advertised by a SocketAppender
|
closed, errorHandler, headFilter, layout, name, tailFilter, threshold
Constructor and Description |
---|
SocketAppender() |
SocketAppender(InetAddress address,
int port)
Connects to remote server at
address and port . |
SocketAppender(String host,
int port)
Connects to remote server at
host and port . |
Modifier and Type | Method and Description |
---|---|
void |
activateOptions()
Connect to the specified RemoteHost and Port.
|
void |
append(LoggingEvent event)
Subclasses of
AppenderSkeleton should implement this
method to perform actual logging. |
void |
cleanUp()
Drop the connection to the remote host and release the underlying
connector thread if it has been created
|
void |
close()
Close this appender.
|
String |
getApplication()
Returns value of the Application option.
|
boolean |
getLocationInfo()
Returns value of the LocationInfo option.
|
int |
getPort()
Returns value of the Port option.
|
int |
getReconnectionDelay()
Returns value of the ReconnectionDelay option.
|
String |
getRemoteHost()
Returns value of the RemoteHost option.
|
boolean |
isAdvertiseViaMulticastDNS() |
boolean |
requiresLayout()
The SocketAppender does not use a layout.
|
void |
setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS) |
void |
setApplication(String lapp)
The App option takes a string value which should be the name of the
application getting logged.
|
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 the server is waiting for connections.
|
void |
setReconnectionDelay(int delay)
The ReconnectionDelay option takes a positive integer
representing the number of milliseconds to wait between each
failed connection attempt to the server.
|
void |
setRemoteHost(String host)
The RemoteHost option takes a string value which should be
the host name of the server where a
SocketNode is
running. |
addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setErrorHandler, setLayout, setName, setThreshold
public static final int DEFAULT_PORT
public static final String ZONE
public SocketAppender()
public SocketAppender(InetAddress address, int port)
address
and port
.public SocketAppender(String host, int port)
host
and port
.public void activateOptions()
activateOptions
in interface OptionHandler
activateOptions
in class AppenderSkeleton
public void close()
This will mark the appender as closed and call then cleanUp()
method.
public void cleanUp()
public void append(LoggingEvent event)
AppenderSkeleton
AppenderSkeleton
should implement this
method to perform actual logging. See also AppenderSkeleton.doAppend
method.append
in class AppenderSkeleton
public void setAdvertiseViaMulticastDNS(boolean advertiseViaMulticastDNS)
public boolean isAdvertiseViaMulticastDNS()
public boolean requiresLayout()
false
.public void setRemoteHost(String host)
SocketNode
is
running.public String getRemoteHost()
public void setPort(int port)
public int getPort()
public void setLocationInfo(boolean locationInfo)
public boolean getLocationInfo()
public void setApplication(String lapp)
public String getApplication()
public void setReconnectionDelay(int delay)
Setting this option to zero turns off reconnection capability.
public int getReconnectionDelay()
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.