[logback-dev] [JIRA] Commented: (LBCORE-169) RollingFileAppender/TimeBasedRollingPolicy failing to ZIP files in different directory

Paulo R P Andrade (JIRA) noreply-jira at qos.ch
Tue Oct 5 22:38:51 CEST 2010


    [ http://jira.qos.ch/browse/LBCORE-169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=11837#action_11837 ] 

Paulo R P Andrade commented on LBCORE-169:
------------------------------------------

I was able to setup the fileNamePattern using the timestamp tag as showed bellow:

<file>logs\server.log</file> 
<timestamp key="byMonth" datePattern="yyyyMM"/>-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
  <fileNamePattern>logs\arch-${byMonth}\server.%d{yyyy-MM-dd_HHmm}.log.zip</fileNamePattern> 
</rollingPolicy> 

But if the directory(${byMonth}) doesn't exist, the compression fails with a java.io.FileNotFoundException error. Apparently the fix for LBCORE-151 doesn't work for compressed files.

I'm attaching a patch(LBCORE-160_patch.txt) to fix the compression of files in directories that doesn't exist yet. My original patch was to call renameUtil.createMissingTargetDirsIfNecessary from helper.Compressor class, but at that point I don't know how to set the context for the RenameUtil. Anyway, attached goes an initial idea where you guys can start with.

> RollingFileAppender/TimeBasedRollingPolicy failing to ZIP files in different directory
> --------------------------------------------------------------------------------------
>
>                 Key: LBCORE-169
>                 URL: http://jira.qos.ch/browse/LBCORE-169
>             Project: logback-core
>          Issue Type: Bug
>          Components: Rolling
>    Affects Versions: 0.9.24
>            Reporter: Tomasz Nurkiewicz
>            Assignee: Logback dev list
>         Attachments: LBCORE-169.zip, LBCORE-169_patch.txt
>
>
> When using ZIP feature to compress old log files, Logback does not allow to put ZIP files in different directory like in this example:
> <file>logs\server.log</file>
> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
>   <fileNamePattern>logs\arch\server.%d{yyyy-MM-dd_HHmm}.log.zip</fileNamePattern>
> </rollingPolicy>
> Running the attached test maven project (it takes 1 minute to run) will create server.log3560979839057.tmp (or similar) temporary file instead of ZIP file in /arch subdirectory (preferably this directory should be created if not exists). If fileNamePattern in rollingPolicy is changed to: "logs\server.%d{yyyy-MM-dd_HHmm}.log.zip" everything works as expected.
> The root of this issue is to be able to automatically ZIP files AND archive them in different directory. It would be great to be able to use date placeholders in folder names, for instance:
> <fileNamePattern>logs\arch-%d{yyyy-MM}\server.%d{yyyy-MM-dd_HHmm}.log.zip</fileNamePattern>
> so that Logback would automatically create folders for each month with ZIPped files.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the logback-dev mailing list