2015-05-06 2 views
1

Я пытаюсь создать файл журнала с датой, присоединенной к имени файла, например application.log.yyyymmdd.log4j создать файл журнала с отметкой времени в имени файла, используя ТОЛЬКО log4j.xml

Это мой текущий log4j.xml.

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

    <!-- Appenders --> 
    <appender name="console" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="application.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> 


    <!-- Root Logger --> 
    <root> 
     <priority value="debug" /> 
     <appender-ref ref="console" /> 
    </root> 

</log4j:configuration> 

Это не создает application.log.yyyymmdd вместо этого он только генерируя application.log.

Есть ли другой способ: использовать только log4j.xml для этого?

+0

это всегда 'applicaiton.log' для файла текущего дня, после того, как он будет загружаться в день, он добавит суффикс даты. – haifzhan

+0

Я хотел бы, чтобы он имел суффикс даты после создания файла - без катания на следующий день. это возможно? – LaneLane

+0

Я боюсь, что вы не можете. DailyRollingFileAppender предоставляет развернутые журналы с шаблоном даты, но текущий день - это всегда 'application.log', без даты. – haifzhan

ответ

1

Файл журнала выкатывается каждый день и файл журнала текущего дня без даты. Предположим, что текущий день - 2015-05-06, а в полночь, как только он пройдет 23:59:59, log4j сделает резервную копию application.log в application.log.2015-05-06, а файл application.log станет протоколированием для нового дня, 2015-05-07 и сына на

Вы должны знать, что application.log - это файл журнала текущего дня, поэтому не имеет значения, у него есть суффикс данных или нет.

Ниже приведено то, что я использую сейчас, каждый день он сканирует новый файл и хранит файлы журнала в течение 30 дней.

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <fileNamePattern>/data/log/logging.%d{yyyy-MM-dd}.log</fileNamePattern> 
     <maxHistory>30</maxHistory> 
</rollingPolicy> 
+0

Могу ли я использовать 'org.apache.log4j.rolling.TimeBasedRollingPolicy' вместо' ch.qos.logback.core.rolling.TimeBasedRollingPolicy' – LaneLane

+0

, если честно, я никогда не использовал протокол apache. я ничего не могу сказать .. – haifzhan

Смежные вопросы