Создайте файлы журналов для каждой даты в отдельном каталоге с текущей системной датой - PullRequest
1 голос
/ 27 марта 2019

Я пытаюсь сохранить журналы приложения для весенней загрузки для каждой даты в отдельном каталоге с текущей датой, месяцем и годом.

Я пытался использовать временные метки, он сохраняет журналы в отдельном каталоге, только если мы перезапускаем сервер Tomcat каждый день.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <logger name="org.hibernate" level="ERROR" />
    <logger name="org.mongodb" level="ERROR" />

    <property name="DIRECTORY" value="/home/Properties/logs" />

    <timestamp key="year" datePattern="yyyy" />
    <timestamp key="month" datePattern="MM" />
    <timestamp key="date" datePattern="dd" />
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
            </pattern>
        </encoder>
    </appender>


<appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${DIRECTORY}/${year}/${month}/${date}/logfile.log</file>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
            </pattern>
        </encoder>
    </appender>

    <root level="info">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

Я хочу, чтобы мои журналы для каждой даты сохранялись в каталоге, создаваемом каждый день, без необходимости перезапуска сервера в порядке, аналогичном [year] \ [month] \ [date] \ logfile.log

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Нашли решение моего собственного вопроса, если кто-нибудь из вас найдет лучшее решение, пожалуйста, дайте мне знать.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="DIRECTORY" value="/home/Properties/logs" />
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
            </pattern>
        </encoder>
    </appender>

    <appender name="FILE"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DIRECTORY}/logfile.log</file>
        <rollingPolicy
            class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${DIRECTORY}/%d{yyyy/MM/dd, aux}/logfile-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxFileSize>50MB</maxFileSize>
        </rollingPolicy>
        <encoder>
            <pattern>[%d{yyyy-MM-dd HH:mm:ss.sss}][%-5p][%C][%t][%L]%m%n
            </pattern>
        </encoder>
    </appender>
    <root level="info">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
0 голосов
/ 27 марта 2019

Используя RollingFileAppender в сочетании с TimeBasedRollingPolicy, И установите fileNamePattern на %d{yyyy/MM/dd}/logFile.log.См. эту ссылку для получения более подробной информации

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- daily rollover -->
      <fileNamePattern>%d{yyyy/MM/dd}/logFile.log</fileNamePattern>

      <!-- keep 30 days' worth of history capped at 3GB total size -->
      <maxHistory>30</maxHistory>
      <totalSizeCap>3GB</totalSizeCap>

    </rollingPolicy>

    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender> 

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
...