2013-04-05 49 views
1

我想通過xml配置log4cxx以便每分鐘滾動我的日誌文件。我試着用下面的log4j.xml文件,但它似乎只是有時,隨機地工作。我也嘗試使用TimeBasedRollingPolicy的另一個XML文件,但它不起作用。 任何幫助,將不勝感激。log4cxx:基於時間的滾動不起作用

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="appxRollingAppenderDaily" class="org.apache.log4j.rolling.RollingFileAppender"> 
     <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
      <param name="FileNamePattern" value="TimeBasedLog.%d{yyyy-MM-dd-HH-mm}.log"/> 
      <param name="activeFileName" value="appxDailyLog.log"/> 
     </rollingPolicy> 

     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %x [%p] (%F:%L) %m%n"/> 
     </layout> 
     <param name="file" value="appxDailyLog.log"/> 
     <param name="append" value="true"/> 
    </appender> 

    <root> 
     <priority value="all" /> 
     <appender-ref ref="appxRollingAppenderDaily"/> 
    </root> 
</log4j:configuration> 

回答

0

試試這個:

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="appxRollingAppenderDaily" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="Threshold" value="ALL"/> 
     <param name="file" value="./appxDailyLog.log"/> 
     <param name="DatePattern" value="'.'yyyy-MM-dd" /> 
     <layout class="org.apache.log4j.PatternLayout"> 
<!--  <param name="ConversionPattern" value="%p %t %c - %m%n"/> --> 
<!--  <param name="ConversionPattern" value="%d{ISO8601} [%15.15t] %-5p %l - %m%n"/> --> 
<!--  <param name="ConversionPattern" value="%d{ISO8601} [%-8.8t] %-5p (%t) - %m%n"/> --> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %x [%p] (%F:%L) %m%n"/> 
     </layout> 
    </appender> 

    <root> 
     <priority value="ALL" /> 
     <appender-ref ref="appxRollingAppenderDaily"/> 
    </root> 

    </log4j:configuration> 
+0

這應該是正確的做法,但它不工作:它每天不斷追加日誌到同一文件,而無需創建一個新的文件,並重新命名舊一。 – m2fro 2013-10-31 14:23:32

+0

檢查文件系統權限。您的應用能否寫入該目錄並創建文件? – ingyhere 2013-11-01 09:19:53

+0

你也可以嘗試這種方法:http://stackoverflow.com/questions/7103625/is-it-possible-to-have-a-new-file-for-each-new-day-with-log4cxx。 – ingyhere 2013-11-01 09:21:32