Joe created LOG4NET-511: --------------------------- Summary: 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: 1.2.16
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)