Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which is the quickest appender for log4Net?

Tags:

log4net

Which is the quickest appender for log4Net apart from ConsoleAppender?

like image 969
Amitabh Avatar asked Feb 02 '10 14:02

Amitabh


2 Answers

You could write a log4Net equivalent of NullAppender, which would be very fast... (Oops - I originally thought the question was about log4j; the same advice applies though.)

Of course, that wouldn't do anything useful - which leads me to wonder why you're placing so much importance on speed. The normal approach is to work out what you need, then benchmark/profile it to check whether it performs adequately. I suspect that you'll be swamped with more data than you can usefully process before it actually becomes a bottleneck. Do you have a known performance problem with logging?

like image 131
Jon Skeet Avatar answered Oct 21 '22 05:10

Jon Skeet


Checkout the BufferingForwardingAppender. We use this which forwards to a RollingFileAppender. It batches the writes and allows the code to continue without waiting for the write. We setup an Evaluator to force a flush at the WARN threshold and set lossy to false so we don't miss any messages.

<appender name="BufferingForwardingAppender" type="log4net.Appender.BufferingForwardingAppender">
    <bufferSize value="512" />
    <lossy value="false" />
    <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="WARN"/>
    </evaluator>
    <appender-ref ref="RollingFileAppender" />
</appender>
like image 30
Mike Schall Avatar answered Oct 21 '22 04:10

Mike Schall