logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-649) Close a dynamically created appender
Date Tue, 03 Nov 2015 14:44:27 GMT

    [ https://issues.apache.org/jira/browse/LOG4J2-649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14987387#comment-14987387
] 

ASF GitHub Bot commented on LOG4J2-649:
---------------------------------------

GitHub user frendos opened a pull request:

    https://github.com/apache/logging-log4j2/pull/19

    LOG4J2-649: Purging dynamically created routing sub-appenders

    1. Added PurgePolicy interface
    2. Added IdlePurgePolicy which is purging sub-appenders that were not in use last X time
units
    3. Added ability to access sub-appenders, so custom purging controlled
    outside log4j2 also possible.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/frendos/logging-log4j2 RoutingAppenderPurge

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/logging-log4j2/pull/19.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 #19
    
----
commit 26b329486b690f1784f780601d90b09cb5974451
Author: Aleksey Zvolinsky <aleksey@zvolinsky.name>
Date:   2015-11-02T06:28:10Z

    LOG4J2-649: Purging dynamically created routing sub-appenders
    
    1. Added PurgePolicy interface
    2. Added IdlePurgePolicy which is purging sub-appenders that were not in
    use last X minutes
    3. Added ability to access sub-appenders, so custom purging controlled
    outside log4j2 also possible.

commit 16891c62efc863e49265c7ea3691b205a91a4680
Author: Aleksey Zvolinsky <aleksey@zvolinsky.name>
Date:   2015-11-03T14:40:32Z

    Added timeUnit and applied camel case for attributes

----


> Close a dynamically created appender
> ------------------------------------
>
>                 Key: LOG4J2-649
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-649
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: API, Appenders
>    Affects Versions: 2.0-rc1
>         Environment: Windows 7 (64-bit)
>            Reporter: Andrew Rose
>            Assignee: Ralph Goers
>
> I'm using the Routing functionality in Log4j 2 to dynamically create appenders at runtime.
When I know that those appenders are finished with, I'd like to tell Log4j so that it can
tidy up the related resources (flush & close files, free its internal objects related
to those appenders, etc.). Without doing this, Log4j still has open file handles and I'm unable
to manipulate the files that it has written (from an external process which post-processes
and archives the logs).
> Remko Popma tells me (via the stackoverflow answer at http://stackoverflow.com/a/23827382/799399)
that there is no way of doing this at the moment.  I'd like to request that you consider enhancing
Log4j 2 in this way.
> I enclose my configuration below, in case it's relevant (but I think all the details
you need are included in the above description).
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="WARN">
>   <Appenders>
>     <Console name="Console" target="SYSTEM_OUT">
>       <PatternLayout pattern="%d{HH:mm:ss.SSS} %level{ERROR=!, WARN=?, INFO=-, DEBUG=.,
TRACE=.} %msg%n"/>
>     </Console>
>     <Routing name="MatchLogs">
>       <Routes pattern="$${ctx:matchID}">
>         <Route>
>           <RandomAccessFile name="MatchLog-${ctx:matchID}" fileName="logs/${ctx:matchID}.log">
>             <PatternLayout pattern="%d{ISO8601} %-5level %-30.30logger{1} %msg%n"/>
>           </RandomAccessFile>
>         </Route>
>       </Routes>
>     </Routing>
>     <Async name="AsyncWrapper">
>       <AppenderRef ref="MatchLogs" level="debug"/>
>       <AppenderRef ref="Console" level = "info"/>
>     </Async>
>     <Routing name="MatchStatsLogs">
>       <Routes pattern="$${ctx:matchID}">
>         <Route>
>           <RandomAccessFile name="MatchStatsLog-${ctx:matchID}" fileName="logs/${ctx:matchID}_stats.log">
>             <PatternLayout pattern="%msg"/>
>           </RandomAccessFile>
>         </Route>
>       </Routes>
>     </Routing>
>     <Async name="AsyncStatsWrapper">
>       <AppenderRef ref="MatchStatsLogs" level="debug"/>
>     </Async>
>   </Appenders>
>   <Loggers>
>     <Logger name="stats" level="trace" additivity="false">
>       <AppenderRef ref="AsyncStatsWrapper"/>
>     </Logger>
>     <Root level="debug">
>       <AppenderRef ref="AsyncWrapper"/>
>     </Root>
>   </Loggers>
> </Configuration>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message