The SocketAppender has the following properties:
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 {@link #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 {@link #close} the SocketAppender
either explicitly or by calling the {@link org.apache.log4j.LogManager#shutdown} method before exiting the application.
|
|
|
|