log4j - Architektur
Die log4j-API folgt einer mehrschichtigen Architektur, bei der jede Schicht unterschiedliche Objekte zur Ausführung unterschiedlicher Aufgaben bereitstellt. Diese geschichtete Architektur macht das Design flexibel und kann in Zukunft problemlos erweitert werden.
Mit dem log4j-Framework stehen zwei Arten von Objekten zur Verfügung.
Core Objects:Dies sind obligatorische Objekte des Frameworks. Sie müssen das Framework verwenden.
Support Objects:Dies sind optionale Objekte des Frameworks. Sie unterstützen Kernobjekte, um zusätzliche, aber wichtige Aufgaben auszuführen.
Kernobjekte
Zu den Kernobjekten gehören die folgenden Objekttypen:
Logger-Objekt
Die oberste Ebene ist der Logger, der das Logger-Objekt bereitstellt. Das Logger-Objekt ist für die Erfassung von Protokollinformationen verantwortlich und diese werden in einer Namespace-Hierarchie gespeichert.
Layoutobjekt
Die Layoutebene enthält Objekte, mit denen Protokollinformationen in verschiedenen Stilen formatiert werden. Es bietet Unterstützung für Appender-Objekte vor dem Veröffentlichen von Protokollinformationen.
Layoutobjekte spielen eine wichtige Rolle bei der Veröffentlichung von Protokollinformationen auf eine Weise, die für den Menschen lesbar und wiederverwendbar ist.
Appender-Objekt
Dies ist eine untergeordnete Ebene, die Appender-Objekte bereitstellt. Das Appender-Objekt ist für die Veröffentlichung von Protokollinformationen an verschiedenen bevorzugten Zielen wie einer Datenbank, einer Datei, einer Konsole, einem UNIX-Syslog usw. verantwortlich.
Das folgende virtuelle Diagramm zeigt die Komponenten eines log4J-Frameworks:
Unterstützungsobjekte
Es gibt andere wichtige Objekte im log4j-Framework, die im Protokollierungsframework eine wichtige Rolle spielen:
Level Objekt
Das Level-Objekt definiert die Granularität und Priorität aller Protokollierungsinformationen. Innerhalb der API sind sieben Protokollierungsstufen definiert: OFF, DEBUG, INFO, ERROR, WARN, FATAL und ALL.
Objekt filtern
Das Filter-Objekt wird verwendet, um Protokollierungsinformationen zu analysieren und weitere Entscheidungen darüber zu treffen, ob diese Informationen protokolliert werden sollen oder nicht.
Einem Appender-Objekt können mehrere Filterobjekte zugeordnet sein. Wenn Protokollierungsinformationen an ein bestimmtes Appender-Objekt übergeben werden, müssen alle diesem Appender zugeordneten Filterobjekte die Protokollierungsinformationen genehmigen, bevor sie am angehängten Ziel veröffentlicht werden können.
ObjectRenderer
Das ObjectRenderer-Objekt ist darauf spezialisiert, eine String-Darstellung verschiedener Objekte bereitzustellen, die an das Protokollierungsframework übergeben werden. Dieses Objekt wird von Layoutobjekten verwendet, um die endgültigen Protokollierungsinformationen vorzubereiten.
LogManager
Das LogManager-Objekt verwaltet das Protokollierungsframework. Es ist dafür verantwortlich, die anfänglichen Konfigurationsparameter aus einer systemweiten Konfigurationsdatei oder einer Konfigurationsklasse zu lesen.