[JAVA] [Logback] Was tun, wenn unnötige Dateien während der Rotation nicht verschwinden?

Ein Memo, als ich überprüfte, wann die unnötige Datei (= Archivdatei, die nicht mehr gespeichert war) nicht verschwand und zu "Warum ~" wurde, während die Gültigkeit der Rotationseinstellung von Logback überprüft wurde.

NOTE:

Zum Zeitpunkt der Überprüfung habe ich eine Hauptmethode erstellt, die nur ein Debug-Protokoll ausgibt und es mit verschobenem Systemdatum ausführt.

Ausführung

Warum sind die unnötigen Dateien nicht verschwunden? ??

Ich habe die detaillierten Bedingungen nicht untersucht, aber im Fall einer eigenständigen Anwendung mit einer kurzen Ausführungszeit (= Anwendung, bei der der Prozess unmittelbar nach der Protokollausgabe endet) unnötige Dateien, die nach dem Drehen der Protokolldatei erstellt werden sollten (= nicht mehr gespeichert). Archivdatei) Es scheint, dass die JVM vor dem Löschvorgang beendet werden kann.

Was soll ich machen?

Durch Aktivieren der Option zum Aufrufen des Prozesses zum Löschen nicht benötigter Dateien (= Archivdateien, die gespeichert wurden) beim Start der Anwendung können unnötige Dateien beim nächsten Ausführungszeitpunkt gelöscht werden.

Beispiel für die Ausführung des Vorgangs zum Löschen nicht benötigter Dateien beim Start


<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> <!--★★★ Hier hinzufügen ★★★-->
    </rollingPolicy>
    <encoder>
        <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>

NOTE:

Bei einer residenten Anwendung wie einer Webanwendung werden unnötige Dateien auch zum Rotationszeitpunkt gelöscht, es sei denn, es liegt ein Sonderfall vor (= da es sehr unwahrscheinlich ist, dass der Prozess zum Zeitpunkt des Wechsels endet). Selbst wenn Sie Pech haben und es nicht gelöscht wird, wird es bei der nächsten Rotationsmöglichkeit gelöscht. Es scheint also kein Problem zu geben, auch wenn Sie nicht über die oben genannten Einstellungen verfügen.

Zusammenfassung

Wahrscheinlich ... Für Apps, die auf kommerziellen Diensten ausgeführt werden, ist es fast in Ordnung, "cleanHistoryOnStart" nicht anzugeben. Eine Batch-App, die mit einem sofortigen Kill endet! ?? Wenn es eine Geschichte gibt (ich glaube nicht, dass es notwendig ist, sie zu stapeln, wenn sie mit einem sofortigen Kill endet ...), ist es möglicherweise eine gute Idee, diese Option für alle Fälle anzugeben. Außerdem ... Wenn Sie diese Option bei der Überprüfung des Rotationsvorgangs nicht wie ich einschließen, verschwenden Sie möglicherweise Zeit mit der Frage "Warum?".

Recommended Posts

[Logback] Was tun, wenn unnötige Dateien während der Rotation nicht verschwinden?
Was tun, wenn der Haltepunkt schattiert ist und beim Debuggen nicht stoppt?
Was tun, wenn FacesMessage festgelegt, aber nicht angezeigt wird?
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Was tun, wenn die Änderungen nach der automatischen Bereitstellung in EC2 nicht übernommen werden?
Was tun, wenn das Hintergrundbild nach der Bereitstellung nicht angewendet wird?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn die Bereitstellung in Heroku fehlschlägt (Ruby-App nicht erkannt)?
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn mvn archetype: generate fehlschlägt?
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn das Update nach der Bereitstellung von Rails AWS nicht wirksam wird?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn beim Starten von Tomcat eine ClassNotFoundException auftritt?
Was tun, wenn der Rails-Server nicht gestoppt werden kann?
Was tun, wenn TextToSpeech unter Android 11 nicht funktioniert?
Was tun, wenn Sie versehentlich ein Modell erstellen?
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Was tun, wenn die Annotation JSON Hint nicht mit Lombok und JSONIC funktioniert?
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn die Methode in f: ajax nicht gefunden wurde?
Was tun, wenn der Befehl adb nicht ausgeführt werden kann?
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
Was tun, wenn der Befehl Rails unbrauchbar wird?
Was tun, wenn während der automatischen Bereitstellung auf EC2 mit Capistrano ein SSH-Schlüsselauthentifizierungsfehler auftritt?
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Was tun, wenn der Git-Status besagt, dass Änderungen nicht für das Festschreiben bereitgestellt wurden: Nach dem Hinzufügen des Git.
Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn die Validierung mit der Aktualisierungsaktion nicht funktioniert?
Was tun, wenn die Änderungen im Servlet nicht berücksichtigt werden?
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Hinweise, was zu tun ist, wenn das Eclipse Maven-Abhängigkeitsglas nicht korrekt ist
[Schienen] Was tun, wenn Schienen nicht reagieren oder nicht anhalten?
Was tun bei Problem während der Inhaltsunterstützung?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was tun, wenn eine javax.batch.operations.JobStartException auftritt?
Was tun, wenn JavaMail nicht mit OpenJDK 11 oder höher verwendet werden kann?
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Fügen Sie gem'rails-i18n ',' ~> 6.0.0 'hinzu und was zu tun ist, wenn die Bundle-Installation einen Fehler anzeigt
Was tun, wenn Sie das Plug-In nicht vom Eclipse Marketplace installieren können?
Kein Platz mehr auf dem Gerät Was tun, wenn ein Fehler auftritt?
Was tun, wenn Ihnen der von swagger-codegen-cli generierte Code nicht gefällt?