Log4cxx DailyRollingFileAppender не переворачивается - PullRequest
2 голосов
/ 17 февраля 2012

У меня есть приложение, которое запускается только при активации оборудования.Устаревшее приложение C ++, которое мы недавно добавили также в log4cxx, для создания журналов, помогающих отлаживать редкие производственные проблемы.Мы, конечно, хотели ежедневные файлы журналов.

Оказывается, что мы никогда не получали файлы.

Чтобы устранить проблему, мы устанавливаем ее на минуту, а не на день.Мы обнаружили, что если программа вызывается в течение нескольких секунд с начала минуты, файл будет переворачиваться.Если он вызывался более чем через 5 секунд после начала минуты, переворачивание не произошло.

При тестировании программе требуется примерно 5 секунд для запуска.

Есть ли в любом случае при запуске программы ролловер log4 при запуске программы, если это необходимо?

т.е.переверните файл журнала, прежде чем мы начнем регистрировать в течение 50 минут, а не просто добавим к 6 минуте.

Ответы [ 3 ]

1 голос
/ 14 марта 2012

Оказывается ошибка в реализации log4cxx.(

1 голос
/ 22 февраля 2012

Попробуйте {

log4j.rootLogger=debug, R

# Pattern to output the caller's file name and line number.

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.DatePattern=test-%Y-%m-%d.log

}

0 голосов
/ 23 июня 2016

DailyRollingFileAppender не работало и в моем случае (в log4cxx 0.10.0), поэтому я в итоге использовал RollingFileAppender плюс TimeBasedRollingPolicy:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="roll" class="org.apache.log4j.rolling.RollingFileAppender">
    <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
      <param name="FileNamePattern" value="roll.%d{yyyy-MM-dd}.log"/>
    </rollingPolicy>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%p %t %c - %m%n"/>
    </layout>
    <param name="Append" value="true"/>
  </appender>
  <root>
    <priority value="ALL"/>
    <appender-ref ref="roll"/>
  </root>
</log4j:configuration>

Точка равна не для указания <param name="file">, иначе он не перевернется (также он не распознает StaticLogFileName param, как в оригинальном log4j).

...