Search code examples
javaloggingasynchronousslf4jappender

Java: How am I supposed to close async appender wrapped in SLF4J facade?


I am developing my own simple logging system, which I'd like to design so it writes the to output stream asyncronously. For that purpose I create processing thread. How am I supposed to properly stop it, when user application finishes executing?

Unfortunatelly SLF4J facade doesn't provide any interface for me to delegate this responsibility to the user.


Solution

  • Make the thread daemon and it will finish togehter with the application. As for closing the OutputStream you don't need to worry about it. If it is a file or a socket it will be closed by OS anyway. Just make sure you flush after each write.