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

Zusammenfassung zur Verwendung des MySQL-Autorisierungsbefehls „grant“

So verwenden Sie den MySQL-Autorisierungsbefehl „...

So verwendet MySQL Transaktionen

Grundlagen Eine Transaktion ist eine atomare Oper...

Tomcat verwendet Log4j zur Ausgabe des catalina.out-Protokolls

Das Standardprotokoll von Tomcat verwendet java.u...

Beispielcode zur Implementierung des Bildschubladeneffekts mit CSS3

Wie üblich posten wir zuerst den Bildeffekt: Das ...

MySQL-Lösung für zeitgesteuerte Backups (mithilfe von Linux crontab)

Vorwort Obwohl manche Liebe auf dieser Welt ihren...

Eine kurze Diskussion zur Verwendung von React.FC und React.Component

Inhaltsverzeichnis 1. Reagieren.FC<> 2. Kla...

Detaillierte Erklärung und Zusammenfassung der URL zur Datenbankverbindung

Detaillierte Erklärung und Zusammenfassung der UR...

So verwenden Sie CSS, um mehrere Bilder horizontal in der Mitte anzuzeigen

Lassen Sie mich zunächst über die Implementierung...

Beispielcode zur Implementierung einer Upload-Komponente mit Vue3

Inhaltsverzeichnis Allgemeine Entwicklung von Upl...

So fahren Sie nginx herunter/starten es neu

Schließung Dienst Nginx stoppen systemctl stoppt ...

So ändern Sie schnell die Tabellenstruktur einer MySQL-Tabelle

Tabellenstruktur einer MySQL-Tabelle schnell ände...

Prinzip des Ladens von Docker-Images

Inhaltsverzeichnis Docker-Images Was ist ein Spie...

Detaillierte Erklärung zur JavaScript-Datenabflachung

Inhaltsverzeichnis Was ist Abflachung? Rekursion ...