Heim >Java >javaLernprogramm >Einführung in die grundlegende Verwendung von Log4j
Einfache Konfiguration
#指定logger # 配置Logger组件 # 设定Log4j的日志级别(error warn info debug) # 输出目的地(Console, logfile是appender的名字,是自己定义的,后面才赋予具体的含义) log4j.rootLogger=debug, Console, logfile ################################################################################################################### #指定appender(目的地) #设定Logger的Console(appender的名字)的Appender类型为控制台输出 #org.apache.log4j.ConsoleAppender 表明 Console是控制台输出 log4j.appender.Console=org.apache.log4j.ConsoleAppender #输出的格式 #设定Console的Appender布局Layout #org.apache.log4j.PatternLayout(可以灵活地指定布局模式)包含选项: # ConversionPattern=%m%n :指定怎样格式化指定的消息 log4j.appender.Console.layout=org.apache.log4j.PatternLayout #2009-09-29 07:30:43,265 INFO com.itcast.web.controller.SearchCdServlet.doGet() - e log4j.appender.Console.layout.ConversionPattern=%d %p %c.%M() - %m%n ################################################################################################################### #设定Logger的logfile(appender的名字)的Appender类型为文件大小到达指定尺寸的时候产生一个新的文件 log4j.appender.logfile=org.apache.log4j.RollingFileAppender #设定文件的输出路径(指定文件的名字和路径,tomcat的启动路径) log4j.appender.logfile.File=../logs/logstrore.log #设定后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到logstrore.log.1文件 log4j.appender.logfile.MaxFileSize=2048KB #Keep three backup files.指定可以产生的滚动文件的最大数 log4j.appender.logfile.MaxBackupIndex=4#设定logfile的Appender布局Layout log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p %c.%M() - %m%n ###################################################################################################################
Log4JEinführung
Log4J ist ein Open-Source-Projekt von Apache. Es handelt sich um ein Protokolloperationspaket. Mit Log4J können Sie das Ziel für die Protokollinformationsausgabe angeben, z. B. Konsole, Datei, CUI-Komponente, NT-Ereignislogger ; Sie können auch das Ausgabeformat jedes Protokolls steuern. Darüber hinaus kann durch die Definition des Protokollinformationsniveaus die Ausgabe des Protokolls sehr detailliert gesteuert werden. Das Interessanteste ist, dass diese Funktionen über eine Konfigurationsdatei flexibel konfiguriert werden können, ohne den Anwendungscode zu ändern.
Die Ausgabe von Protokollen in Anwendungen dient drei Zwecken:
l Überwachen Sie Änderungen an Variablen im Code und zeichnen Sie regelmäßig Daten in Dateien zur statistischen Analyse durch andere Anwendungen auf
l Verfolgen Sie die Code-Laufzeitverlauf als Grundlage für zukünftige Audits
l Fungiert als Debugger in der integrierten Entwicklungsumgebung und druckt Code-Debugging-Informationen in Dateien und Konsolen
Erforderlich Die gebräuchlichste Methode zur Ausgabe von Protokollen in a Das Programm besteht darin, Anweisungen in den Code einzubetten. Eine bessere Möglichkeit besteht darin, eine Protokolloperationsklasse zu erstellen, um solche Vorgänge zu kapseln, anstatt den Codekörper mit einer Reihe von Druckanweisungen zu füllen.
Angesichts der heutigen Betonung wiederverwendbarer Komponenten stellt uns Apache zusätzlich zur Entwicklung eines wiederverwendbaren Protokolloperationsklassennamens von Anfang bis Ende ein leistungsstarkes vorgefertigtes Protokoll zur Verfügung Operationspaket Log4J.
Log4J besteht hauptsächlich aus drei Hauptkomponenten:
l Logger: Verantwortlich für die Erstellung von Protokollen und die Möglichkeit, Protokollinformationen zu klassifizieren und zu filtern ausgegeben werden und welche Protokollinformationen ignoriert werden sollten
l Appender: Definiert das Ziel für die Ausgabe von Protokollinformationen und gibt an, wo die Protokollinformationen ausgegeben werden sollen. Diese Orte können Konsolen, Dateien, Netzwerkgeräte usw. sein.
l Layout: Geben Sie das Ausgabeformat der Protokollinformationen an
Diese drei Komponenten arbeiten zusammen, um Entwicklern die Aufzeichnung von Informationen nach Protokollinformationskategorien zu ermöglichen und das Ausgabeformat der Protokollinformationen und die Protokollspeicherung zu steuern Speicherort während der Programmausführung.
Ein Logger kann mehrere Appender haben, was bedeutet, dass Protokollinformationen gleichzeitig an mehrere Geräte ausgegeben werden können. Jeder Appender entspricht einem Layout und Layout bestimmt das Format der ausgegebenen Protokollinformationen.
Angenommen, je nach tatsächlichem Bedarf müssen die Protokollinformationen im Programm an die Konsole ausgegeben werden, auf der das Programm ausgeführt wird, und an eine bestimmte Datei. Wenn die Protokollinformationen an die Konsole ausgegeben werden, SimplLayout-Layout, wenn PatternLayout-Layout, wenn Protokollinformationen in eine Datei ausgegeben werden. Zu diesem Zeitpunkt ist die Beziehung zwischen den drei Komponenten Logger, Appender und Layout wie in der Abbildung dargestellt
Appender-Komponente (Ausgabezweck angeben)
Die Appender-Komponente von Log4J bestimmt, wo die Protokollinformationen ausgegeben werden. Neuerdings unterstützt Log4Js Appepnススr die folgenden Zwecke der Ausgabe von Protokollinformationen: 🎜>l
Ein Logger kann mehreren Appendern gleichzeitig entsprechen Informationen eines Loggers können gleichzeitig an mehrere Ziele ausgegeben werden: Um zwei Appender für den RootLogger zu konfigurieren, können Sie den folgenden Konfigurationscode verwenden:
log4j.rootLogger =WARN,file,console rootLogger Protokollebene und Ausgabezweck konfigurieren;log4j.appender.file=org.apache.log4jRollingFileAppender Log4j.appender.file=log.txtlog4j.appender.console=org.apache.log4j.ConsoleAppender |
LayoutKomponente
Layout-Komponente wird verwendet, um das Ausgabeformat des Protokolls zu bestimmen. Sie hat die folgenden Typen:
l org.apache.log4j .HTMLLayout (Layout im HTML-Tabellenformat)
l org.apache.log4j.PatternLayout (der Layoutmodus kann flexibel angegeben werden)
l org.apache.log4j.SimpleLayout (enthält Protokollinformationen Ebene und Informationszeichenfolge)
l org.apache.log4j.TTCCLayout (enthält Protokollgenerierungszeit, Thread- und Kategorieinformationen)
Um Log4J in einer Anwendung zu verwenden, konfigurieren Sie zunächst jede Komponente von Log4j in einer Konfigurationsdatei, und dann können Sie das Protokoll über die Log4JAPI im Programm bedienen
Konfigurationsdatei definieren
Log4J besteht aus drei wichtigen Komponenten: Logger, Appender und Layout. Log4J unterstützt das programmgesteuerte Festlegen dieser Komponenten im Programm und unterstützt auch die Konfiguration von Komponenten über Konfigurationsdateien. Die letztere Methode ist flexibler.
Log4J unterstützt zwei Konfigurationsdateiformate, eines ist das XML-Format und das andere ist eine Java-Eigenschaftendatei,
1. Logger-Komponente konfigurieren Die Syntax lautet:
log4j.rootLogger
= [ level ], appenderName1, appenderName2, …
log4j.rootLogger =WARN,file,console
level: ist die Priorität der Protokollierung, unterteilt in OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL oder die von Ihnen definierte Ebene.
Log4j empfiehlt die Verwendung von nur vier Ebenen. Die Prioritäten von hoch nach niedrig sind ERROR>WARN>INFO>DEBUG. Über die hier definierten Ebenen können Sie das Ein- und Ausschalten der entsprechenden Protokollinformationsebene in der Anwendung steuern. Buchen Sie es zum Beispiel hier
Wenn die INFO-Ebene definiert ist, werden nicht alle Protokollinformationen der DEBUG-Ebene in der Anwendung gedruckt.
appenderName: gibt an, wo die Protokollinformationen ausgegeben werden. Sie können mehrere Ausgabeziele gleichzeitig angeben.
Alle: Alle Protokolle drucken.
Aus: Alle Protokolle schließen.
Zum Beispiel: log4j.rootLogger=info,A1,B2,C3
2 >
KomponenteDie Syntax lautet:
log4j.appender.appenderName =vollständig qualifizierter.Name.der.Appender.Klasse.
Beispiel:
„fully.qualified.name.of.appender.class“ kann eines der folgenden fünf Ziele angeben
:
1.org.apache.log4j.ConsoleAppender(Konsole)
2.org.apache.log4j.FileAppender(Datei)
[Kann das Protokoll nur in eine Datei ausgeben, nicht empfohlen]
3.org.apache.log4j.DailyRollingFileAppender(erzeugt jeden Tag eine Protokolldatei)
4.org.apache.log4j.RollingFileAppender (Generieren Sie eine neue Datei, wenn die Dateigröße die angegebene Größe erreicht)
5.org.apache.log4j.WriterAppender (Protokollinformationen im Streaming-Format an einen beliebigen angegebenen Ort senden)
ConsoleAppender
Optionen Threshold=WARN: Geben Sie die niedrigste Ausgabestufe von Protokollmeldungen an. ImmediateFlush=true: Der Standardwert ist true, was bedeutet, dass alle Meldungen sofort ausgegeben werden. Target=System.err: Standardmäßig: System.out, geben Sie die Ausgabekonsole an B. ImmediateFlush=true: Der Standardwert ist true, was bedeutet, dass alle Meldungen sofort ausgegeben werden. File=mylog.txt: Geben Sie die Nachricht an, die in die Datei mylog.txt ausgegeben werden soll. angegebenen Datei überschreibt. -Datei überschreibt. auch Monate, Wochen, Tage, Stunden und Minuten angeben. Das entsprechende Format lautet also wie folgt: . erreicht, wird sie automatisch gescrollt, d. h. der ursprüngliche Inhalt wird in die Datei mylog.log.1 verschoben. 3, konfigurieren Sie das Format der Protokollinformationen Die Syntax lautet: Beispiel: log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %p %c.%M()-%m%n LocationInfo=true: Der Standardwert ist false, Java-Dateiname und Zeilennummer werden ausgegeben ConversionPattern=%m%n
:Geben Sie an, wie die angegebene Nachricht formatiert werden soll. l Besorgen Sie sich den Logger l Trace (Objektnachricht): Protokollnachrichten auf TRACE-Ebene ausgeben. Bei der oben genannten Methode zum Ausgeben von Protokollen wird diese Methode nur dann tatsächlich ausgeführt, wenn die Ebene des ausgegebenen Protokolls größer oder gleich der für das Protokoll konfigurierten Protokollebene ist. Wenn beispielsweise die Protokollebene des Loggers WARN ist, dann ist es im Programm fatal(), error() und warn() werden ausgeführt, die Methoden info(), debug() und Trace() jedoch nicht ausgeführt . ( zwei)LogFactorySchnittstelle org.apache.commons.logging.LogFactory-Schnittstelle bietet zwei statische Methoden zum Abrufen von Logger-Instanzen: Zusammenfassung Log4J besteht hauptsächlich aus drei Hauptkomponenten: Logger, Appender und Layout. Logger steuert die Ausgabe von Protokollinformationen; Appender bestimmt das Ausgabeziel von Protokollinformationen; Layout bestimmt das Ausgabeformat von Protokollinformationen. Log4J ermöglicht Benutzern die flexible Konfiguration dieser Komponenten in Konfigurationsdateien. Es ist sehr praktisch, Log4J in einem Programm zu verwenden. Sie müssen nur zuerst den Logger abrufen, dann die Konfigurationsdatei lesen und die Log4J-Umgebung konfigurieren. Anschließend können Sie die entsprechende Methode der Logger-Klasse aufrufen, um Protokolle zu generieren, wo immer Sie sie ausgeben müssen meldet sich im Programm an.
FileAppender
Optionen
Threshold=WARN: Gibt die niedrigste Stufe der Protokollmeldungsausgabe an.
Append=false: Der Standardwert ist true, was bedeutet, dass die Nachricht der angegebenen Datei hinzugefügt wird. False bedeutet, dass die Nachricht den Inhalt der durch
C.DailyRollingFileAppenderOptionen
Threshold=WARN: Geben Sie die niedrigste Ausgabestufe von Protokollmeldungen an.
ImmediateFlush=true: Der Standardwert ist true, was bedeutet, dass alle Meldungen sofort ausgegeben werden.
File=mylog.txt: Geben Sie die Nachricht an, die in die Datei mylog.txt ausgegeben werden soll.
Append=false: Der Standardwert ist true, was bedeutet, dass die Nachricht der angegebenen Datei hinzugefügt wird. False bedeutet, dass die Nachricht den Inhalt der angegebenen
DatePattern='.'yyyy-ww: Rollen Sie die Datei einmal pro Woche, dh generieren Sie jede Woche eine neue Datei. Natürlich können Sie
1)'.'yyyy-MM: Jeden Monat
2)'.'yyyy-ww: jede Woche
3)'.'yyyy-MM-dd: Jeden Tag
4)'.'yyyy-MM-dd-a: zweimal täglich
5)'.'yyyy-MM-dd-HH: Jede Stunde
6)'.'yyyy-MM-dd-HH-mm: Jede Minute
D.RollingFileAppender Optionen
Threshold=WARN: Angeben Die niedrigste Ebene der Protokollnachrichtenausgabe.
ImmediateFlush=true: Der Standardwert ist true, was bedeutet, dass alle Meldungen sofort ausgegeben werden.
File=mylog.log: Geben Sie die Nachricht an, die in die Datei mylog.txt ausgegeben werden soll.
Append=false: Der Standardwert ist true, was bedeutet, dass die Nachricht der angegebenen Datei hinzugefügt wird, false bedeutet, dass die Nachricht den Inhalt der angegebenen Datei überschreibt
MaxFileSize=100 KB:
Das Suffix kann KB, MB oder GB sein. Wenn die Protokolldatei die Größe
MaxBackupIndex=2: Gibt die maximale Anzahl an Rolling-Dateien an, die generiert werden können.
1) log4j .appender.appenderName.layout=fully.qualified.name.of.layout.class
"fully.qualified.name.of.layout.class" kann angegeben werden wie folgtEines von 4Formaten:
1.org.apache.log4j.HTMLLayout (Layout im HTML-Tabellenformat) enthält Optionen:
Titel=meine App-Datei: Der Standardwert ist Log4J Log Messages.
2.org.apache.log4j.PatternLayout (kann Layoutmuster flexibel angeben) enthält Optionen:
3.org.apache.log4j.SimpleLayout (enthält die Ebene und Informationszeichenfolge der Protokollinformationen)
4.org.apache.log4j.TTCCLayout (einschließlich Protokollgenerierungszeit, Thread, Kategorie und andere Informationen)
%-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
Die Bedeutung mehrerer Symbole im Protokollinformationsformat: -X-Nummer:
X-Informationen werden bei der Ausgabe linksbündig angezeigt; %p: Priorität der Ausgabeprotokollinformationen, d. h. DEBUG, INFO, WARN, ERROR, FATAL,
%d:
Das Datum oder die Uhrzeit des Ausgabeprotokollzeitpunkts, das Standardformat ist ISO8601, Sie können das Format auch nachträglich angeben, zum Beispiel: %d{yyy MMM dd HH:mm:ss,SSS}, die Ausgabe ist ähnlich: 18. Oktober , 2002 22: 10:28,921 %r:
Geben Sie die Anzahl der Millisekunden aus, die vom Start der Anwendung bis zur Ausgabe der Protokollinformationen gedauert haben
%c: Geben Sie die Kategorie aus, zu der die Protokollinformationen gehören, normalerweise den vollständigen Namen der Klasse
%t: Ausgabe der Name des Threads, der das Protokollereignis generiert hat
%l: Der Ort, an dem das Ausgabeprotokollereignis aufgetreten ist, entspricht der Kombination aus %C.%M (%F:%L), einschließlich des Kategorienamens und des Threads wo es geschah,
und die Anzahl der Zeilen im Code. Beispiel: Testlog4.main(TestLog4.java:10)
%x: Gibt die NDC (verschachtelte Diagnoseumgebung) aus, die dem aktuellen Thread zugeordnet ist, insbesondere in Multi-Client- und Multi-Thread-Anwendungen wie Java-Servlets.
%%: Geben Sie ein „%“-Zeichen aus.
%F: Geben Sie den Dateinamen aus, in dem die Protokollmeldung generiert wird.
%L: Geben Sie die Zeilennummer im Code aus.
%m: Geben Sie die Zeile aus Im Code angegebene Nummer. Meldung, spezifische Protokollinformationen werden generiert
%n: Wagenrücklauf und Zeilenvorschub ausgeben, Windows-Plattform ist „rn“, Unix-Plattform ist „n“, Protokollinformationen werden mit Zeilenvorschub ausgegeben
%M steht für den Namen der Methode
Sie können Modifikatoren zwischen % und den Musterzeichen hinzufügen, um deren minimale und maximale Breite zu steuern und Textausrichtung. Beispiel: 1)%20c: Geben Sie den Namen der Ausgabekategorie an. Die Mindestbreite beträgt 20, wenn der Kategoriename kleiner als 20 ist. 2)%-20c: Geben Sie den Namen der Ausgabekategorie an. Die Mindestbreite beträgt 20. Wenn der Kategoriename kleiner als 20 ist, gibt das „-“-Zeichen die Linksausrichtung an.
3)%.30c: Geben Sie den Namen der Ausgabekategorie an. Die maximale Breite beträgt 30. Wenn der Kategoriename größer als 30 ist, werden die zusätzlichen Zeichen auf der linken Seite abgeschnitten, wenn er jedoch kleiner als 30 ist , es wird keine Leerzeichen geben. 4)%20.30c: Wenn der Kategoriename weniger als 20 Zeichen lang ist, füllen Sie Leerzeichen aus und richten Sie ihn rechtsbündig aus. Wenn der Name länger als 30 Zeichen ist, schneiden Sie die Zeichen von links ab.
Um im Programm auf Log4J zuzugreifen, müssen Sie die Log4J-JAR-Datei verwenden.
Die Verwendung von Log4J im Programm umfasst die folgenden Prozesse:
Das obige ist der detaillierte Inhalt vonEinführung in die grundlegende Verwendung von Log4j. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!