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

Stefan Bodewig commented on LOG4NET-344:
----------------------------------------

For some reason we've all forgotten there already is an AsyncAppender inside 
log4net's examples.  Furthermore there is an implementation using TPL in 
LOG4NET-407.

The existing example code seems to be similar to Ron's suggestion (it doesn't 
perform any bulk processing, but I'd rather see async and buffering/forwarding 
as two separate issues anyway.  Right now I'm leaning towards adding 
AsyncAppender to log4net's core using either the existing example code or Tom's 
implementation for .NET < 4.0 and the TPL version for .NET >= 4.0.

Tests would be good :-)

> Make AdoNetAppender not to stuck application process
> ----------------------------------------------------
>
>                 Key: LOG4NET-344
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-344
>             Project: Log4net
>          Issue Type: Improvement
>          Components: Appenders
>    Affects Versions: 1.2.10
>         Environment: Windows series
>            Reporter: Tom Tang
>              Labels: patch
>             Fix For: 3.5
>
>         Attachments: AdoNetAppender.cs, AsyncForwardingAppender.cs
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> The original AdoNetAppender could stuck application during log insertion.
> Because it use the sync method call to do database insert, once the DB is 
> unavailable or table was locked.
> I change the implementation that has an inner queue inside to store the 
> messages, and the other independent thread will be going to cunsuming the 
> queue messages and do DB insertion.
> This implementation will not have any impact on application performance and 
> much stable.
> Trade off: Once the queue max buffer was full, the later coming log message 
> would be ignored and gone forever. But log4net is not designed for guarantee 
> delivery in purpose, right? So it's not big deal at all. :)  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to