----- Original Message ----
From: James Wilkinson <jwe...@gmail.com>
To: Log4NET User <log4...@logging.apache.org>
Cc: "jerr...@gmail.com" <jerr...@gmail.com>
Sent: Wednesday, August 8, 2007 4:43:24 AM
Subject: log4net duplicate filtering
Hi,
I wanted to post the code I'd written for duplicate filtering a couple of weeks
ago, but got distracted with some other work. After noticing the recent messages
about duplicate filtering, I just figured that posting it in its current state
might be of use to people.
It's a modified forwarding appender that does duplicate event filtering with a
summary message inserted after the series of duplicate events has completed. I
started off trying to implement it as a filter, but hit the problem of not being
able to insert the summary message into the stream.
here's the source...
http://www.idiots.org.uk/log4net/DupeFilteringForewardingAppender_08-08-07.txt
Typical usage would be something like this...
<!-- use this forwarding appender as a dupe filter which then passes on to the
console -->
<appender name="DupeFilteringForwardingAppender"
type="log4net.Appender.DupeFilteringForwardingAppender " >
<appender-ref ref="ConsoleAppender" />
<FlushTimeout value="3" />
</appender>
FlushTimeout (integer seconds) - see the comment in the source for the public
property for how this works.
There are a whole load of things I'm not really sure I've done very well. The
name of the thing for a start. The message fingerprinting might be more
efficiently done as a checksum and from what I know, I think the reliance on the
.net 2.0 generic-based list probably isn't in the spirit of the log4net coding
standards. The hard-coded way that event fingerprints are built up feels like it
needs thought. Anyway, it's maybe a start.
Also, thanks to Peter for clearing up my misconception about log4net plugins.