I'm interested in this as I've also written an async appender.  Mine is 
currently lossy both at application shutdown and when the application floods it 
with events faster than it can process them, so to date I haven't been too 
concerned by this issue.

Do you have an MCVE (http://stackoverflow.com/help/mcve) for the problem you 
describe in your StackOverflow post?   If so I'd be happy to take a look.

Log4net already exposes a shutdown routine (LogManager.Shutdown()).  If pull 
request #37 (https://github.com/apache/log4net/pull/37) is implemented, your 
app could also call LogManager.Flush at shutdown.

A comment in RemotingAppender.OnClose, which is asynchronous, implies that 
queued background threads may not complete if called from the ProcessExit event 
(total execution time of ProcessExit event handlers limited to 2 seonds by 

From: Nicholas Duane [mailto:nic...@msn.com]
Sent: 16 October 2016 04:23
To: Log4NET User
Subject: Re: Apache log4net Needs Help

By the way, what's the state of async appenders in log4net?  I ask because the 
guys pushing nlog over here say that one reason they like nlog is that is 
allows for async operation.  I assumed log4net supports that also, however when 
I attempted to do some async stuff in log4net I did run into problems:


Seems like log4net should not only expose a startup routine the app must call 
but also a shutdown routine, and indicate that it's essential it gets called.  
Then log4net could shutdown the appenders in the shutdown routine as opposed to 
relying on .NET's appdomain shutdown logic.



Reply via email to