Joe commented on LOG4NET-511:
[~bodewig] - it occurs to me that it would have been better to implement
IFlushable as an empty virtual method in AppenderSkeleton.
A trivial change now, but a breaking change once it's released.
What do you think?
> API to flush appenders
> Key: LOG4NET-511
> URL: https://issues.apache.org/jira/browse/LOG4NET-511
> Project: Log4net
> Issue Type: Wish
> Components: Appenders, Core
> Affects Versions: 1.2.15
> Environment: NA
> Reporter: Joe
> Priority: Minor
> Fix For: 2.0.6
> I would like to see an API that flushes any appenders that have buffered
> data. E.g. a method LogManager.Flush(). An application might call such a
> method at regular intervals, e.g. on a Timer.
> A naive implementation with the current log4net would iterate through
> appenders, looking for those that support flushing, and call the appender's
> flush method, e.g.:
> foreach (IAppender appender in
> BufferingAppenderSkeleton bas = appender
> as BufferingAppenderSkeleton;
> if (bas != null) bas.Flush();
> But (a) I'm not sure this is thread-safe and (b) there are potentially other
> appenders that may want to be able to flush data (e.g. a TextWriterAppender
> with ImmediateFlush = false).
> The request consists of:
> - Add an interface, IFlushableAppender or equivalent, with a single method
> - Implement this interface in all relevant appenders
> (BufferingAppenderSkeleton, TextWriterAppender, ...)
> - Add a thread-safe static Flush() method to LogManager.
This message was sent by Atlassian JIRA