[
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 <[email protected]>
Date: 2016-04-22T19:21:07Z
Use UTC internally to avoid ambiguous times
commit 9e9f1759d6a80594cd2d12bd54a9e3af9e7cfaa0
Author: JoeJoe <[email protected]>
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)