web-dev-qa-db-ja.com

スプリングブート-バックアップログファイルの数は7に制限されています

spring-bootプロジェクトでは、ロギングの目的でslf4jを使用しています。以下はapplication.propertiesファイルに追加した設定です

logging.file=/opt/logs/my_log.log
logging.level.org.springframework.web=INFO
logging.level.org.hibernate=INFO
logging.level.nl.yestelecom.boss=DEBUG
logging.level.com.github.isrsal.logging.LoggingFilter=DEBUG

それ7つのバックアップファイルのみを生成(my_log.log.1、my_log.log.2 ...、my_log.log.7)、サイズの各ファイル10.5MBおよびその後、ロギングはまったく行われません。

この動作を変更する方法はありますか?

Spring-bootの使用可能なプロパティを調べましたが、何も見つかりませんでした。どんな提案も大歓迎です。

15

Spring-Bootでは、application.propertiesで制限されたプロパティのみを設定できます。 ここにリスト を参照してください。

Spring-bootが使用するデフォルト(すぐに使用可能な)構成は、base.xmlで定義されています。 base.xml config here に含まれる this File appender

構成を追加するには2つの方法があります

  1. logback-spring.xmlを追加

プロジェクトのクラスパスにlogback-spring.xmlという名前のログバック構成XMLがある場合、初期化時にSpring-Bootによって選択されます。

  1. application.propertiesからの設定ファイルへのポイント

Application.properties内で、次を使用してカスタムログバックXMLをポイントします

logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback

上記の2つの手順のいずれかを使用して追加の構成を追加すると、このようなカスタムXML内でロールオーバー戦略を言及できます

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <Pattern>%d %-4relative [%thread] %-5level %logger{35} - %msg%n</Pattern>
        </encoder>
    </appender>
    <appender name="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">
            <fileNamePattern>${LOG_FILE}.%i</fileNamePattern>
            <minIndex>1</minIndex>
            <maxIndex>10</maxIndex>
        </rollingPolicy>
        <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <MaxFileSize>10MB</MaxFileSize>
        </triggeringPolicy>
    </appender>

    <root level="DEBUG">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE"/>
    </root>
</configuration>
22
DeepakV

SFL4Jは単なるラッパーです。ログバックライブラリの追加の構成を追加する必要があります。

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

ソース

この場合、過去30日間のログがありますが、3GB以下です。

7
Koziołek

spring-boot 2.0.0の場合:

  • logging.file.max-history
  • logging.file.max-size

...およびその他org.springframework.boot.logging.LoggingSystemPropertiesまたは https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/reference/html/boot-features-logging.html#boot-features-logging-file-output

3
Frischling