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の使用可能なプロパティを調べましたが、何も見つかりませんでした。どんな提案も大歓迎です。
Spring-Bootでは、application.propertiesで制限されたプロパティのみを設定できます。 ここにリスト を参照してください。
Spring-bootが使用するデフォルト(すぐに使用可能な)構成は、base.xmlで定義されています。 base.xml config here に含まれる this File appender
構成を追加するには2つの方法があります
プロジェクトのクラスパスにlogback-spring.xmlという名前のログバック構成XMLがある場合、初期化時にSpring-Bootによって選択されます。
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>
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以下です。
spring-boot 2.0.0の場合:
...およびその他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