It looks like that class was written a while ago so you may already know 
this...you should be able to extend the built-in ForwardingAppender and let it 
handle the IAppenderAttachable stuff so the Append methods would look something 
like this:

public class DupeFilteringForwardingAppender : ForwardingAppender
{
    protected override void Append(LoggingEvent loggingEvent)
    {
        base.Append(CheckForDupe(loggingEvent));
    }
   
    protected override void Append(LoggingEvent[] loggingEvents)
    {
        List<LoggingEvent> filteredLoggingEventList = new List<LoggingEvent>();

        foreach (LoggingEvent loggingEvent in loggingEvents)
        {
            filteredLoggingEventList.AddRange(CheckForDupe(loggingEvent));
        }
        
        base.Append(filteredLoggingEventList.ToArray());
    }

    // snip
}


----- Original Message ----
From: Jerry Shea <[EMAIL PROTECTED]>
To: log4net-user@logging.apache.org
Sent: Saturday, May 3, 2008 12:50:13 AM
Subject: Re: Throttling/Rollup feature in EventLogAppender


Hi Pranav,
 
James Wilkinson and I worked up some code to do this. See 
http://markmail.org/message/pahnqti7yq4xoz7m 
 
I am currently the bottleneck on this having not responded to James' last 
message :(. I'll get moving and hopefully we can contribute this code to the 
community soon.
 
Cheers, Jerry
 
---------- Forwarded message ----------
From: Pranav Varia <[EMAIL PROTECTED]>
To: "log4net-user@logging.apache.org" <log4net-user@logging.apache.org>
Date: Fri, 2 May 2008 14:00:08 -0700
Subject: Throttling/Rollup feature in EventLogAppender
 
Is there a Throttling feature available or planned in EventLogAppender.
If we log to event log a message that could potentially be logged at frequency 
of one per incoming request to my web application, it could flood the event log 
with millions of messages if/when things go wrong.  If there was a = way to 
roll them up every x seconds into a single event log message (with a count of 
how many messages where rolledup), it would be useful to me.
Is there any such feature? Or workaround?
Regards
Pranav

Reply via email to