[JAVA] Rotation en fonction de la taille du fichier de connexion

supposition

Logback est utilisé pour la sortie du journal Java (Spring Boot).

"Je veux que vous tourniez lorsque le journal atteint 20 Mo et que vous gardiez 20 fichiers pour le passé." On m'a dit, mais je ne savais pas du tout comment le faire, alors j'ai cherché.

logback-spring.xml J'ai mis ceci sous src / main / resource et l'ai tourné.

logback-spring.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE logback>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!--Paramètres pour chaque environnement-->
    <springProfile name="local">
        <!--Spécifiez le répertoire du journal. Et qu'est-ce qui se passerait si/tmp -->
        <property name="LOG_DIR" value="/tmp" />
        <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--Nom et chemin du fichier journal-->
            <file> ${LOG_DIR}/adg.log</file>
            <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                <!--Nom de fichier après rotation.".zip"Si vous le mettez, il sera compressé sans autorisation-->
                <fileNamePattern> ${LOG_DIR}/adg_%i.log</fileNamePattern>
                <!--Nombre maximum après le fichier/le minimum. Numéro à tenir-->
                <minIndex>1</minIndex>
                <maxIndex>20</maxIndex>
            </rollingPolicy>
            <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
                <!--Faire pivoter en fonction de la taille du fichier-->
                <maxFileSize>20MB</maxFileSize>
            </triggeringPolicy>
            < encoder>
                <!--Format de sortie du journal-->
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] [%thread]  [%file:%line %method] %msg%n</pattern>
            </encoder>
        </appender>
    </springProfile>

    <!--Paramètres pour chaque environnement(J'ai essayé de l'écrire comme ça) -->
    <springProfile name="prod">
        <!--Spécifiez le répertoire du journal(Je l'ai changé dans l'environnement) -->
        <property name="LOG_DIR" value="/var/log" />
・ ・ ・
    </springProfile>

    <!--Niveau de journal-->
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

application.properties (extrait)

application.properties


#Paramètres de l'environnement local
spring.profiles.active=local

Sortie de journal

Au fait, comme moi, comment sortez-vous le journal en premier lieu? Certaines personnes disent cela, alors prenez note.

LogTestController.java


package jp.adg.fuji.log.controllers;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class LogTestController {
    public void logLog() {
        try {
            //Cela seul vous donnera un journal
            log.info("journal d'informations");
            //Décrivez le processus
        } catch (Exception e) {
            // log.warn()Il y a aussi
            log.error("journal des erreurs", e);
        }
        return;
    }
}

Échec

・ Initialement créé avec le nom de fichier logback.xml → Une erreur se produit lors de l'utilisation de springProfile → Changez le nom du fichier en logback-spring.xml

-Bien que j'aie utilisé la balise layout, elle semble être obsolète, donc je l'ai modifiée en encodeur https://logback.qos.ch/codes.html#layoutInsteadOfEncoder

-Une erreur s'est produite car la destination de sortie du journal a également été décrite dans application.properties. → Suppression de la description côté application.properties

・ Copiez et collez sans réfléchir org/springframework/boot/logging/logback/base.xml Lorsque j'ai inclus, le journal de l'application était également (involontairement) dans catalina.out

Autre

Tu devrais avoir ça aussi, Il vaut mieux définir chaque environnement comme celui-ci, Je veux que vous me disiez s'il y a un tel cadre!

Recommended Posts

Rotation en fonction de la taille du fichier de connexion
À propos de la comparaison de taille de compareTo
Liste des emplacements des fichiers hôtes
Mettez la date (par exemple aaaa-MM-jj) dans la sortie du fichier journal par logback