[ 
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)

Reply via email to