Detaillierte Erläuterung der drei Möglichkeiten zum Schneiden von Catalina.out-Protokollen in Tomcat

Detaillierte Erläuterung der drei Möglichkeiten zum Schneiden von Catalina.out-Protokollen in Tomcat

1. Log4j zur Protokollsegmentierung

1) Bereiten Sie drei Pakete vor: log4j-1.2.17.jar tomcat-juli.jar tomcat-juli-adapters.jar und legen Sie sie in das Lib-Verzeichnis von Tomcat oder WEB_INF/lib des Projekts.

2) Erstellen Sie eine neue Datei log4j.properties im lib-Verzeichnis und fügen Sie den folgenden Inhalt hinzu

log4j.rootLogger = INFO, CATALINA
 
# Definieren Sie alle Appender
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
log4j.appender.CATALINA.Encoding = UTF-8
# Einmal täglich das Protokoll überarbeiten
log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Kodierung = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
 
# Konfigurieren Sie, welche Logger in welche Appender protokollieren
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOST
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\
 INFO, MANAGER
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\
 INFO, HOST-MANAGER

3) Löschen Sie im Tomcat-Stammverzeichnis im Ordner „conf“ die Datei „logging.properties“ oder benennen Sie sie um. Modifizieren Sie anschließend die Datei context.xml und ändern Sie den Tag <Context> in <Context swallowOutput="true">, um die Log-Ausgabe von Tomcat zu übernehmen. Auf diese Weise ist die Protokollsegmentierung mit log4j abgeschlossen.

2. Verwenden Sie Cronolog, um Protokolle aufzuteilen

Cronolog ist ein Filterprogramm, das Protokolldateieinträge von der Standardeingabe liest und jeden Eintrag in die durch die Dateinamenvorlage und die aktuelle Protokolldatei angegebene Ausgabedatei schreibt. Bei einer Änderung der Dateierweiterung wird die aktuelle Datei geschlossen und eine neue Datei geöffnet. Cronolog ist für die Verwendung mit Webservern wie Apache konzipiert, um Zugriffsprotokolle in Tages- oder Monatsprotokolle aufzuteilen.

# wget https://files.cnblogs.com/files/crazyzero/cronolog-1.6.2.tar.gz
# tar -zxf cronolog-1.6.2.tar.gz
# CD-Chronologe
# ./konfigurieren 
# machen && machen installieren
# welcher Chronolog
# /usr/local/sbin/cronolog

Bearbeiten Sie bin/catalina.sh unter Tomcat (Hinweis: Die Zeilenanzahl entspricht möglicherweise nicht meinen Angaben, suchen Sie einfach nach der Anweisung).

Ersetzen Sie die beiden obigen Inhalte durch:

org.apache.catalina.startup.Bootstrap "$@" start \
2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

Starten Sie Tomcat nach Abschluss neu.

3. Verwenden Sie zum Schneiden „logrotate“.

Erstellen Sie in /etc/logrotate.d ein neues tomcatrotate, bearbeiten Sie tomatrotate und schreiben Sie den folgenden Inhalt:

/usr/local/tomcat7.0.79/logs/catalina.out {
täglich
drehen 15
fehltok
Datumext
Kompresse
Benachrichtigungleer
kopieren und abschneiden
}

daily gibt den Dump-Zyklus als täglich an
„rotate 15“ gibt an, wie oft die Protokolldatei rotiert wird, bevor sie gelöscht wird. „0“ bedeutet, dass keine Sicherung erfolgt, und „5“ bedeutet, dass 5 Sicherungen aufbewahrt werden.
missingok Wenn das Protokoll nicht existiert, ignorieren Sie die Warnmeldung
Das Dateisuffix von dateext ist im Datumsformat, d. h. die Datei nach dem Ausschneiden lautet: xxx.log-20150828.gz
Komprimieren Komprimieren Sie die ausgegebenen Protokolle mit gzip (gzip -d xxx.gz zum Dekomprimieren).
notifempty: Wenn die Datei leer ist, wird sie nicht gesichert.

copytruncate wird für noch geöffnete Protokolldateien verwendet, um das aktuelle Protokoll zu sichern und zu kürzen.

/usr/local/tomcat7.0.79/logs/catalina.out gibt den Pfad von catalina.out an.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Tomcat verwendet Log4j zur Ausgabe des catalina.out-Protokolls
  • Lösen Sie das Problem, dass sich catalina.out weiterhin in Tomcat ansammelt
  • Catalina.out-Protokolldateisegmentierung unter Linux Tomcat
  • Tomcat8 verwendet Cronolog zum Aufteilen von Catalina.Out-Protokollen

<<:  Eine Liste der Fallstricke beim regulären JS-Matching

>>:  MySQL-Wissenspunkte für die Computerprüfung der zweiten Ebene MySQL-Alter-Befehl

Artikel empfehlen

So verwenden Sie async await elegant in JS

Inhaltsverzeichnis $.ajax von jQuery Der Beginn d...

Verbesserung der Aktualisierungsfunktion für Zen-Codierungsressourcen

Offizielle Website: http://code.google.com/p/zen-c...

Ausführliche Erklärung zur Docker-Maschine

Unterschiede zwischen Docker und Docker Machine D...

Beispiel für ein JavaScript-Meldungsfeld

In JavaScript können drei Arten von Meldungsfelde...

Tipps zur Verwendung kleiner HTML-Tags

Phrasenelemente wie <em></em> können d...

Einige Erkenntnisse und Gedanken zu iframe

Diese Geschichte beginnt heute mit einer unerwarte...

Detaillierte Erklärung des Vue2 Cube-UI-Zeitwählers

Inhaltsverzeichnis Vorwort 1. Anspruch und Wirkun...

JS realisiert die automatische Wiedergabe der Timeline

Vor kurzem habe ich einen solchen Effekt implemen...

VUE implementiert einen Beispielcode für das Spiel Flappy Bird

Flappy Bird ist ein sehr einfaches kleines Spiel,...

mysql5.7.18 dekomprimierte Version zum Starten des MySQL-Dienstes

Die dekomprimierte Version von mysql5.7.18 starte...

Konfigurationsschritte für die MySQL-Gruppenreplikation (empfohlen)

MySQL-Group-Replication ist eine neue Funktion, d...