Log4j legt mithilfe von Appendern fest, welche Art des Logging angewendet wird, wenn das Logging-Paket eine Anweisung erhält. Die Standard-Appender von Log4 sind Screen (Konsole), File (Datei), Rotating file (rotierende Datei) und ein Remote-Appender, der das Sammeln von Log-Daten an einem zentralen Ort ermöglicht. Die Appender werden auf die Kategorien angewandt, so dass verschiedene Teile der Anwendung verschiedene Log-Ziele aufweisen können.
Sobald Sie Priorität und Appender für die Kategorien festgelegt haben, muss nur noch ein Layout bestimmt werden. Mit Layouts wird das exakte Format Ihrer Logging-Anweisungen kontrolliert, wie z.B. Datum, Zeit, Modulbezeichnung und Thread-Identifizierungen. Ich werde hier nicht versuchen, alle verfügbaren Formate abzudecken, da die Log4j-Dokumentation eine exzellente Übersicht darüber enthält.
Log4j kann mit einer XML- oder einer Java-Property-Datei konfiguriert werden. Ich ziehe die Java-Datei vor, da es etwas übertrieben wäre, zu diesem Zweck eine XML-Datei zu verwenden. Listing A enthält eine Property-Datei, mit der Log4j konfiguriert werden kann.
Die erste Zeile in dieser Datei ohne Kommentar legt fest, dass die Basiskategorie die Priorität DEBUG und drei Appender aufweist, die durch A1, A2 und A3 identifiziert werden. Die verbleibenden Sektionen bestimmen den Appender für jeden Identifikator. In dieser Property sind die Appender eine Konsole (Screen), ein Rotating File und ein UDP-Sender.
Der UDP-Sender ist ein Appender, den ich zu dem Log4j-Paket hinzugefügt habe, so dass ich Log-Anweisungen interaktiv beobachten kann. An jedem Appender hängt ein Layout-Objekt. In diesem Fall wird das PatternLayout verwendet, und das Konvertierungsmuster folgt. Die Zeichen im Konvertierungsmuster bestimmen die Ausgabe der Daten. Mit dem %-Zeichen wird die Formatierungsanweisung festgelegt. In diesem Beispiel steht %-5p für linksbündige Ausrichtung mit fünf Zeichen für die Priorität (p). Darauf folgt das Datum (%d), die Thread-Information (%t), die Message (%m) und schließlich ein Zeichen für das Ende der Zeile (%n).
Um in Ihrer Anwendung Log4j zu verwenden, müssen Sie diese Property-Datei mit Hilfe eines PropertyConfigurator laden. Mit einer solchen Zeile in Ihrer Startup-Klasse sollte dies möglich sein:
import org.apache.log4j.PropertyConfigurator; …. PropertyConfigurator.configure("path/to/file.properties");
Sobald die Konfiguration geladen ist, braucht jede Klasse in Ihrer Anwendung, für die Logging erforderlich ist, eine Referenz zum Kategorieobjekt. Da die Kategorie eine Paketbenennungskonvention verwendet, nehme ich oft den Namen der Klasse für die Kategorie, auch wenn dies nicht erforderlich ist, je nachdem, wie Sie die Konfiguration eingerichtet haben. Wenn Sie für die Klasse eine einzige statische Variable festlegen, stehen die Logging-Routinen zur Verfügung:
import org.apache.log4j.Category; …. private static final Category log = Category.getInstance(MyClass.class.getName());
Neueste Kommentare
Noch keine Kommentare zu Java-Anwendungen mit Logging-Funktion
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.