Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

log4J: Failure in post-close rollover action using TimeBasedRollingPolicy

Tags:

log4j

I have setup TimeBasedRollingPolicy to rollout the file every minute (for test purpose) and the problem I am facing is a warning and no zip or gz file is being created. Warning is:

log4j:WARN Failure in post-close rollover action

I attached the source to figure-out the problem but have no success yet. Am I missing any configuration in my log4j.xml?

<appender name="errorAppender" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="File" value="C:/error.log"/>
        <param name="Append" value="true"/>
        <param name="BufferedIO" value="true"/>
        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="C:/error.%d{ddMMMyyyy HH:mm:ss}.log.gz" />
        <param name="ActiveFileName" value="C:/error.log"/>
    </rollingPolicy>

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %C (line:%L) - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="LevelMax" value="error"/>
            <param name="LevelMin" value="error"/>
            <param name="AcceptOnMatch" value="true"/>
        </filter>
    </appender>

I am using log4j-1.2.17 and apache-log4j-extras-1.1. Has anybody seen this problem or have any clue about it?

like image 640
AMKhan Avatar asked Jul 13 '12 07:07

AMKhan


1 Answers

Problem with "log4j:WARN Failure in post-close rollover action" message is that in windows-based systems you can not create a file name with the ":" char, so the FileNamePattern specified should not contain any one of these: \, /, :, *, ?, ", <, >, |

Here it is a log4j.xml for my application that works fine using a rolling file appender. For testing purposes I made the rolling to create a new file every second:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="consola" class="org.apache.log4j.ConsoleAppender"> 
    <param name="target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="conversionPattern" value="[%d{yyyyMMdd HH:mm:ss:mm,SSS}]%-5p [%t] [%c{1}-%M:%L] - %m%n"/>
    </layout> 
  </appender> 

  <appender name="desarr" class="org.apache.log4j.rolling.RollingFileAppender">
    <param name="Append" value="false"/>
    <rollingPolicy name="desarr" class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="fileNamePattern" value="C:/workspace/Probador/log/backups/importacion222.log_%d{mmss_mm}"/>
        <param name="activeFileName" value="C:/workspace/Probador/log/importacion222.log"/>
    </rollingPolicy> 
   <layout class="org.apache.log4j.PatternLayout"> 
        <param name="conversionPattern" value="[%d{yyyyMMdd HH:mm:ss:mm,SSS}]%-5p [%t] [%c{1}-%M] - %m%n"/>
   </layout> 
  </appender> 

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="consola" /> 
    <appender-ref ref="desarr"/>
  </root>

</log4j:configuration>

Special attention to:

<param name="fileNamePattern" value="C:/workspace/Probador/log/backups/importacion222.log_%d{mmss_mm}"/>

Try this before attempting to zip the file.

like image 106
josemaria_liso Avatar answered Nov 05 '22 18:11

josemaria_liso