Dans notre projet spring-boot, nous utilisons slf4j à des fins de journalisation. Voici la configuration que nous avons ajoutée dans le fichier 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
Il génère seulement 7 fichiers de sauvegarde (my_log.log.1, my_log.log.2 ..., my_log.log.7) avec chaque fichier de taille 10,5 Mo et après cela, l'enregistrement ne se produit plus du tout.
Existe-t-il un moyen de modifier ce comportement?
Nous avons examiné les propriétés disponibles de Spring-Boot mais n'avons rien trouvé. Toute suggestion est appréciée.
Spring-Boot ne permet de configurer que des propriétés limitées dans son application.properties. Voir le liste ici .
La configuration par défaut (prête à l'emploi) utilisée par Spring-boot est définie dans base.xml. Voir config base.xml ici qui inclut cet appendice de fichier
Il existe 2 façons d'ajouter une configuration supplémentaire
S'il existe un fichier XML de configuration de déconnexion avec le nom logback-spring.xml dans le chemin d'accès aux classes du projet, il est récupéré par Spring-Boot lors de l'initialisation.
Dans application.properties, utilisez ce qui suit pour pointer vers votre fichier XML de rappel personnalisé
logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
Une fois que vous avez ajouté la configuration supplémentaire à l'aide de l'une des 2 étapes ci-dessus, la stratégie de substitution peut être mentionnée dans ce XML personnalisé comme celui-ci
<?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 est juste un wrapper. Vous devez ajouter une configuration supplémentaire pour la bibliothèque de déconnexion:
<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>
Dans ce cas, nous avons des journaux des 30 derniers jours mais ne dépassant pas 3 Go.
pour Spring-boot 2.0.0:
... et d'autres Soit regardez org.springframework.boot.logging.LoggingSystemProperties
ou https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/reference/html/boot-features-logging.html#boot-features-logging-file-output