[logback-user] logback SiftingAppender generated log files cannot be deleted untill stop the tomcat server

David Roussel nabble at diroussel.xsmail.com
Sun May 17 11:46:11 CEST 2015


Hi Mayuran,

The logic controlling this is in ch.qos.logback.core.sift.AppenderTracker I seem to remember I’ve had problems with this in the past, but I don’t remember the details now.  It’s controlled by a timeout.  Maybe there should be an explicit way to trigger the closing of an appender controlled by the sifting logic.

David

> On 17 May 2015, at 09:44, mayuran satchithanantham <mayuran19 at gmail.com> wrote:
> 
> Hi logback geeks,
> 
> We are using logback "SiftingAppender" for generating the log files based on the date and other information such as cycle(Each date can have multiple cycles).
> 
> Following are the sample logging file names
> 
> 20150515_1_Job1.log
> 20150515_2_Job1.log
> 
> For the above scenario we are using the following logback configuration.
> 
> <appender name="BATCH_LOGGER_APPENDER" class="ch.qos.logback.classic.sift.SiftingAppender">
>     <discriminator>
>         <key>batchLoggerFileName</key>
>         <defaultValue>unknown</defaultValue>
>     </discriminator>
>     <sift>
>         <appender class="ch.qos.logback.core.FileAppender">
>             <file>${batchlog.dir}/${batchLoggerFileName}.log</file>
>             <layout class="ch.qos.logback.classic.PatternLayout">
>                 <pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} | %-5level | [%thread] | %msg%n%rEx</pattern>
>             </layout>
>         </appender>
>     </sift>
> </appender>
> 
> <logger name="BATCH_LOGGER" level="INFO" additivity="false">
>     <appender-ref ref="BATCH_LOGGER_APPENDER"></appender-ref>
> </logger>
> 
> Following is the java code for logging the details to the specific logs files.
> 
> private static final Logger BATCH_LOGGER = LoggerFactory
>         .getLogger("BATCH_LOGGER");
> 
> public void info(JobInfo jobInfo, String message) {
>     MDC.put("batchLoggerFileName", jobInfo.getJobId());
>     BATCH_LOGGER.info(message);
>     MDC.remove("batchLoggerFileName");
> }
> 
> We have some other jobs that do the housekeeping of the old log files with the retention of 2 days(Two day old files will be moved to another location).
> 
> But even after the job completes, we are not able to move the file. We suspect that logback is holding the resource and not letting the file to move or delete.
> 
> All the jobs are deployed in a single war file in apache tomcat 8 server.
> 
> Can anyone suggest how to enforce logback to release the resource after logging is completed?
> 
> Regards,
> Mayuran
> _______________________________________________
> Logback-user mailing list
> Logback-user at qos.ch
> http://mailman.qos.ch/mailman/listinfo/logback-user

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20150517/4fca1104/attachment.html>


More information about the Logback-user mailing list