[ 
https://issues.apache.org/jira/browse/LOG4NET-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13900093#comment-13900093
 ] 

Michael Goldfinger commented on LOG4NET-407:
--------------------------------------------

I used an  existing appender as reference (I think it was the 
BufferedAppender). Recursive Guard prevents an Loop if the async appender is 
placed inside an async appender in the config file. I did not test if this is 
really happening but the implementation I used as reference seems logical to me.

The thing is I was not sure if ErrorHandler.Error can handle simultaneous calls 
and did not check it. If there is no problem there should be no harm to move  
the try catch outside of the lock Statement


> AsyncAppender - better Implementation
> -------------------------------------
>
>                 Key: LOG4NET-407
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-407
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>         Environment: .Net 4.0 and newer
>            Reporter: Michael Goldfinger
>            Priority: Minor
>             Fix For: 1.3.0
>
>
> I checked out the AsyncAppender 
> (http://svn.apache.org/viewvc/logging/log4net/trunk/examples/net/2.0/Appenders/SampleAppendersApp/cs/src/Appender/AsyncAppender.cs?view=markup)
>  and found some drawbacks.
> * logevents are not logged if the appender close
> * order of logevents got lost
> I created an new implementation that waits for all logevents to be computed 
> before close and maintains the order of the events. If the application 
> process got killed the logevents are lost too but in any other case the loss 
> of logevents could be prevented. The drawback of my implementation is that 
> the TLP is requred so .NET 2.0 is not supported.
> I could not find the place to contribute so I created this ticket. I hope 
> it's useful.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to