[ https://issues.apache.org/jira/browse/LOG4NET-511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15255396#comment-15255396 ]
ASF GitHub Bot commented on LOG4NET-511: ---------------------------------------- GitHub user JJoe2 opened a pull request: https://github.com/apache/log4net/pull/25 API to flush appenders that buffer logging data Implementation of https://issues.apache.org/jira/browse/LOG4NET-511 You can merge this pull request into a Git repository by running: $ git pull https://github.com/JJoe2/log4net wip/Flush Alternatively you can review and apply these changes as the patch at: https://github.com/apache/log4net/pull/25.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #25 ---- commit a66d2fc61c4a1cfd8317aee41385ef6c43373ffc Author: JoeJoe <jocular...@hotmail.com> Date: 2016-04-22T19:21:07Z Use UTC internally to avoid ambiguous times commit 9e9f1759d6a80594cd2d12bd54a9e3af9e7cfaa0 Author: JoeJoe <jocular...@hotmail.com> Date: 2016-04-23T19:58:36Z Implement flushing of appenders that buffer data ---- > 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)