Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Log file name to include current date in log4j

Tags:

java

log4j

The question is a subset of this. I want a log file to be created everyday with the log file name format as follows: downloadmanageryyyy-MM-dd.log
Using DailyRollingAppenderbut the log file is not created at all.

My lo4j.xml looks like this:

 <?xml version="1.0" encoding="UTF-8" ?>
                         <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
   <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
   <appender name="InfoLogFile" class="org.apache.log4j.DailyRollingFileAppender">
       <param name="File" value="downloadmanager.log"/>
       <param name="DatePattern" value=".yyyy-MM-dd" />
       <layout class="org.apache.log4j.PatternLayout"> 
       <param name="ConversionPattern" 
      value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n  %-5p %m%n"/>
      </layout>
   </appender>  
  </log4j:configuration>
like image 978
sherry Avatar asked Jan 10 '12 05:01

sherry


1 Answers

The DailyRollingFileAppender shipping with log4j will not rename the log file until the first message is logged some time after midnight.

You may try to use DatedFileAppender , which can be download from here. Contrary to the DailyRollingFileAppender , it will create the log file whose filename always contains today's date.

like image 199
Ken Chan Avatar answered Sep 27 '22 19:09

Ken Chan