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

Redo-Dateiwartungsmethode der InnoDB-Engine

Wenn Sie die Größe und Anzahl der InnoDB-Redo-Log...

Vue + echart realisiert Doppelsäulendiagramm

In diesem Artikel wird der spezifische Code von v...

Zusammenfassung der Verwendung von MySQL-Datums- und Uhrzeitfunktionen

Dieser Artikel basiert auf MySQL 8.0 Dieser Artik...

So erstellen Sie schnell eine LNMP-Umgebung mit Docker (neueste Version)

Vorwort Tipp: Hier können Sie den ungefähren Inha...

Ausführliche Erläuterung der InnoDB-Sperren in der MySQL-Technologie

Inhaltsverzeichnis Vorwort 1. Was ist ein Schloss...

CSS Clear Float Clear:Both Beispielcode

Heute werde ich mit Ihnen über das Löschen von Fl...

So umbrechen Sie das HTML-Titelattribut

Als ich vor ein paar Tagen ein Programm schrieb, w...

Detaillierte Erklärung des MySQL-Datenbankparadigmas

Vorwort: Ich habe oft von Datenbankparadigmen geh...