You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Stefan Bodewig (JIRA)" <ji...@apache.org> on 2016/10/16 10:52:20 UTC
[jira] [Resolved] (LOG4NET-511) API to flush appenders
[ https://issues.apache.org/jira/browse/LOG4NET-511?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Bodewig resolved LOG4NET-511.
------------------------------------
Resolution: Fixed
Fix Version/s: 2.0.6
fixed with svn revision 1765137
Many thanks [~Joe]
> 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
> LogManager.GetRepository().GetAppenders())
> {
> 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 Flush().
> - 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
(v6.3.4#6332)