[JAVA] [Logback] Que faire si les fichiers inutiles ne disparaissent pas pendant la rotation

Un mémo lorsque j'ai vérifié quand le fichier inutile (= fichier d'archive qui était hors de sauvegarde) n'a pas disparu et est devenu "Pourquoi ~" tout en vérifiant la validité du paramètre de rotation de Logback.

NOTE:

Au moment de la vérification, j'ai créé une méthode principale qui ne produit qu'un seul journal de débogage et l'ai exécutée avec la date du système décalée.

version

Pourquoi les fichiers inutiles n'ont-ils pas disparu? ??

Je n'ai pas étudié les conditions détaillées, mais dans le cas d'une application autonome avec un temps d'exécution court (= application que le processus se termine immédiatement après la sortie du journal), des fichiers inutiles qui doivent être effectués après la rotation du fichier journal (= hors de sauvegarde) Fichier archive) Il semble que la JVM avant le processus de suppression puisse être interrompue.

Que devrais-je faire?

En activant l'option d'appeler le processus pour supprimer les fichiers inutiles (= fichiers d'archive qui ont été enregistrés) au démarrage de l'application, vous pouvez supprimer les fichiers inutiles au moment de l'exécution suivante.

Exemple de définition lors de l'exécution du processus de suppression des fichiers inutiles au démarrage


<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>/var/log/app-%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>7</maxHistory>
        <cleanHistoryOnStart>true</cleanHistoryOnStart> <!--★★★ Ajouter ici ★★★-->
    </rollingPolicy>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>

NOTE:

Dans le cas d'une application résidente telle qu'une application Web, les fichiers inutiles sont également supprimés au moment de la rotation, sauf cas particulier (= car il est très peu probable que le processus se termine au moment du basculement). Même si vous n'êtes pas chanceux et qu'il n'est pas supprimé, il sera supprimé à la prochaine opportunité de rotation, il semble donc qu'il n'y aura pas de problème même si vous ne disposez pas des paramètres ci-dessus.

Résumé

Probablement ... Pour les applications qui fonctionnent sur des services commerciaux, il est presque normal de ne pas spécifier cleanHistoryOnStart. Une application par lots qui se termine par une mise à mort instantanée! ?? Si vous avez (il y a une histoire que vous n'avez pas à traiter si elle se termine par un kill instantané ...), vous pouvez spécifier cette option au cas où. Aussi ... Si vous n'incluez pas cette option lors de la vérification de l'opération de rotation comme je le fais, vous risquez de perdre du temps à demander "Pourquoi?".

Recommended Posts

[Logback] Que faire si les fichiers inutiles ne disparaissent pas pendant la rotation
Que faire si le point d'arrêt est grisé et ne s'arrête pas pendant le débogage
Que faire si FacesMessage est défini mais pas affiché
[Ubuntu 20.04] Que faire si le moniteur externe n'est pas reconnu
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
Que faire si les modifications ne sont pas reflétées après le déploiement automatique vers EC2
Que faire si l'image d'arrière-plan n'est pas appliquée après le déploiement
Que faire lorsque le préfixe c n'est pas lié dans JSP
Que faire si le déploiement échoue dans Heroku (application Ruby non détectée)
Que faire si vous transmettez des informations incorrectes
Que faire si l'archétype mvn: générer échoue
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire si la mise à jour ne prend pas effet après le déploiement de Rails AWS
Que faire si le serveur Rails ne peut pas démarrer
Que faire si une exception ClassNotFoundException se produit lors du démarrage de Tomcat
Que faire si le serveur rails ne peut pas être arrêté
Que faire si TextToSpeech ne fonctionne pas sur Android 11
Que faire si vous créez accidentellement un modèle
Que faire si une erreur ActionController :: UnknownFormat se produit
Que faire si l'annotation JSON Hint ne fonctionne pas avec Lombok et JSONIC
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire lorsque la méthode n'est pas trouvée dans f: ajax
Que faire si la commande adb ne peut pas être exécutée
Que faire si mysql2 obtient une erreur d'installation de bundle
Que faire si la commande rails devient inutilisable
Que faire si une erreur d'authentification de clé SSH se produit lors du déploiement automatique sur EC2 avec Capistrano
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
Que faire quand git status indique Modifications non préparées pour la validation: après git add.
Que faire si vous obtenez une erreur gcc dans Docker
Que faire lorsque la validation ne fonctionne pas avec l'action de mise à jour
Que faire lorsque les modifications du servlet ne sont pas reflétées
Que faire si la page Rails n'est pas affichée dans le didacticiel Rails 1.3.2
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Remarques sur la marche à suivre si le Jar de dépendance Eclipse Maven est incorrect
[Rails] Que faire lorsque les rails ne répondent pas ou ne s'arrêtent pas
Que faire en cas de problème pendant Content Assist
Que faire si vous oubliez votre mot de passe root sur CentOS7
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire lorsqu'une exception javax.batch.operations.JobStartException se produit
Que faire si JavaMail ne peut pas être utilisé avec OpenJDK 11 ou version ultérieure
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Ajouter gem'rails-i18n ',' ~> 6.0.0 'et que faire si l'installation du bundle donne une erreur
Que faire si vous ne pouvez pas installer le plug-in à partir d'Eclipse Marketplace
il ne reste plus d'espace sur l'appareil Que faire en cas d'erreur
Que faire si vous n'aimez pas le code généré par swagger-codegen-cli