Für die Codebeispiele verwenden wir die SLF4J-Bibliothek, aber die gleichen Muster und Lösungen gelten für Log4J, JUL und andere Protokollierungsbibliotheken. Tatsächlich hat jede Sprache, jedes Betriebssystem und jede Umgebung ihre eigene idiomatische und manchmal eigenwillige Protokollierungslösung; oft, tatsächlich, mehr als eins. %d-HH:mm:ss. SSS formatiert das Datum in Stunden, Minuten, Sekunden und Millisekunden. %t zeigt den aktuellen Thread des Loggers an. %level zeigt den Schweregrad des Protokollereignisses an. %logger zeigt den Namen des Loggers an. %m zeigt die Meldung des Ereignisses an. Schließlich fügt %n eine neue Zeile für das nächste Ereignis hinzu. Hier sind einige Beispiele für Protokollereignisse, die mit diesem Konvertierungsmuster formatiert wurden: Wenn Sie sich als echter Profi fühlen, fügen Sie jeder Protokollzeile eine eindeutige ID hinzu.

Eine Protokollzeile hat in der Regel einen festen und einen unterschiedlichen Teil, was es schwierig macht, bestimmte Muster ein- oder auszufiltern (obwohl wir alle reguläre Ausdrücke lieben). Hier wird die eindeutige ID praktisch. Der ELK-Stack ist eine beliebte Lösung für die Protokollaggregation. ELK ist ein Akronym für Elasticsearch, Logstash und Kibana. Die PatternLayout-Klasse aus Log4j und Logback unterstützt Konvertierungsmuster, die bestimmen, wie Daten aus Protokollereignissen extrahiert und für die Ausgabe formatiert werden. Eine Teilmenge dieser Muster wird unten gezeigt. Während diese speziellen Felder sowohl in Log4j als auch in Logback identisch sind, verwenden nicht alle Felder die gleichen Muster. Weitere Informationen zu PatternLayouts finden Sie in der Dokumentation zu Log4j und logback. Wenn wir die zweite Protokollzeile lesen, verstehen wir leicht, was die Anwendung zu tun versuchte, welche Komponente fehlgeschlagen ist und ob es eine Art Lösung für dieses Problem gibt. Dieser Ansatz ermöglicht es einer benutzerdefinierten Factory, alle Aspekte der LogRecord-Erstellung zu steuern. Sie können z.

B. eine Unterklasse zurückgeben oder dem Datensatz nach der Erstellung einfach zusätzliche Attribute hinzufügen, indem Sie ein ähnliches Muster verwenden: Diese und andere Open-Source- und kostenpflichtige Lösungen ermöglichen es Entwicklern, die gesamte Protokollierung auf einem zentralen System zu sammeln. Nach der Speicherung ist es wichtig, protokolle nach den Informationen durchsuchen zu können, die zum Beheben von Ausfällen und zur Überwachung des Anwendungsverhaltens erforderlich sind. Die Protokollierung kann viele Daten erzeugen, daher ist Geschwindigkeit in einer Suchfunktion wichtig. Mit PatternLayout können Sie bestimmen, wie Daten aus Protokollereignissen extrahiert und basierend auf einem Konvertierungsmuster für die Ausgabe formatiert werden. Konvertierungsmuster fungieren als Platzhalter für Daten, die in jedem Protokollereignis angezeigt werden.

theblondewaves
theo@theblondewaves.com