As Matthias points out, SocketAppender uses (internally) a BlockingQueue and a background task in an ExecutorService to do its work. The socket appender implements lifecycle callbacks, so it will stop and release the socket and thread resources it holds, but you've got to explicitly stop the LoggerContext to let it know that you're done with it.
In a plain old Java application, you could register a shutdown hook to do this. In a web application, you could include a ServletContextListener that does it.
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
As Matthias points out, SocketAppender uses (internally) a BlockingQueue and a background task in an ExecutorService to do its work. The socket appender implements lifecycle callbacks, so it will stop and release the socket and thread resources it holds, but you've got to explicitly stop the LoggerContext to let it know that you're done with it.
e.g.
In a plain old Java application, you could register a shutdown hook to do this. In a web application, you could include a ServletContextListener that does it.