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

Remko Popma commented on LOG4J2-649:
------------------------------------

[~Aleksey Zvolinsky] your comment appears to be for another ticket, but both 
this ticket and the ticket you refer to are closed. I just happened to see your 
comment now. If your request still needs action, can you please re-open 
LOG4J2-1235 or raise a separate ticket (and perhaps link to LOG4J2-1235)?

> 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
>             Fix For: 2.5
>
>
> 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-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-dev-h...@logging.apache.org

Reply via email to