[
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 <[email protected]>
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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]