web-dev-qa-db-ja.com

Spring Bootのapplication.yml内でローリングファイルアペンダーを設定する方法

Spring Bootアプリケーションのapplication.yml内で毎日のファイルアペンダーを設定することは可能ですか?

つまり、filenamePattern:myfile。%d {yyyy-MM-dd-HH-mm-ss} .log

Application.ymlファイルに次のような設定があります。

logging:

   file: /mypath/myfile.log

   level:
     mypackage: INFO

ありがとう

31
ele

デフォルトのファイルアペンダー はサイズに基づいています(10MB)。

あなたのlogback.xmlは、説明どおりにTimeBasedRollingPolicyを構成するだけです here

つまり何かのようなもの:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <include resource="org/springframework/boot/logging/logback/base.xml"/>

  <appender name="ROLLIN" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOG_FILE}</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

        <!-- daily rollover -->
        <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>

    </rollingPolicy>
  </appender>

  <root level="INFO">
    <appender-ref ref="ROLLIN" />
  </root>

  <logger name="org.springframework.web" level="INFO"/>
</configuration>
32
Donovan Muller

デフォルトのファイルアペンダーをオーバーライドし、毎日のロールオーバーに変更するには、次のようなlogback-spring.xmlを使用できます。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${Java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>

    <appender name="ROLLING-FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="ROLLING-FILE"/>
    </root>

</configuration>
5
xmatjar

Logback-spring.xmlのファイルサイズに基づいてローリングポリシーを構成することもできます。以下では、SizeBasedTriggeringPolicyの最大ファイルサイズを10MBに指定しています。

<?xml version="1.0" encoding="UTF-8"?>

    <configuration>

        <include resource="org/springframework/boot/logging/logback/defaults.xml" />
        <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${Java.io.tmpdir:-/tmp}}/}spring.log}"/>
        <include resource="org/springframework/boot/logging/logback/console-appender.xml" />

        <appender name="ACTUAL_LOG_FILE"
            class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>${FILE_LOG_PATTERN}</pattern>
            </encoder>
            <file>${LOG_FILE}</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <!-- gz extension to enable file deletion by logrotator  -->
                <fileNamePattern>${LOG_FILE}.%i.gz</fileNamePattern>
                 <minIndex>1</minIndex>
                <maxIndex>10</maxIndex>
            </rollingPolicy>
            <triggeringPolicy
                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <MaxFileSize>10MB</MaxFileSize>
            </triggeringPolicy>
        </appender>

        <root level="INFO">
            <appender-ref ref="ACTUAL_LOG_FILE" />
        </root>

    </configuration>
0
anayagam