CodeGym/Java-Kurse/Modul 3: Java Professional/Protokollierungsstufen festlegen

Protokollierungsstufen festlegen

Verfügbar

4.1 Liste der Protokollierungsstufen

Sie haben Ihr Programm geschrieben, es auf den Server hochgeladen und dann haben Sie sofort Fragen:

  • Wie kann sichergestellt werden, dass debug()die Methode während der Arbeit nicht funktioniert production?
  • Die Protokolle enthalten zu viele Informationen. Möchten Sie nur Fehlermeldungen hinterlassen?
  • Wie kann ich ein detailliertes Protokoll für einen Teil der Anwendung anzeigen?

Natürlich standen die Ersteller der Protokolle vor Jahrzehnten vor der gleichen Situation. Ich werde Ihnen nicht sagen, wie dieses Problem in der C-Sprache gelöst wurde, aber in der Java-Sprache wurde es sehr schön gelöst.

Das Protokoll filtert die Daten, bevor es die Informationen in die Datei schreibt . Sie können den Detaillierungsgrad des Protokolls sehr schnell reduzieren/erhöhen, indem Sie den Protokollierungslevel festlegen. Diese Ebenen werden in der folgenden Tabelle beschrieben:

Eben Notiz
1 ALLE Protokollieren Sie alle Nachrichten
2 VERFOLGEN Kleine Meldung beim Debuggen
3 DEBUGGEN Nachrichten, die für das Debuggen wichtig sind
4 DIE INFO Einfache Nachrichten
5 WARNEN Schreiben Sie nur Fatal, Error und Warning
6 FEHLER Schreiben Sie nur Fehler und schwerwiegende Fehler
7 TÖDLICH Schreiben Sie nur schwerwiegende Fehler
8 AUS Schreiben Sie keine Nachrichten in das Protokoll

Diese Ebenen werden beim Filtern von Nachrichten verwendet. Wenn Sie die Protokollierungsebene auf festlegen WARN, werden alle Nachrichten WARNverworfen, die weniger wichtig sind als: TRACE, DEBUG, INFO. Wenn Sie die Filterstufe auf einstellen FATAL, dann sogar ERROR.

Es gibt zwei weitere Schweregrade, die beim Filtern verwendet werden: diese OFF(alle Nachrichten verwerfen) und ALL– alle Nachrichten schreiben (nichts verwerfen).

4.2 Beispiel für die Protokolleinrichtung

Schauen wir uns ein einfaches Beispiel für die Protokolleinrichtung an. Dazu benötigen wir die Datei log4j.properties, die im Ressourcenordner abgelegt werden kann. Fügen wir den folgenden Inhalt hinzu:

# Root logger option
log4j.rootLogger=WARN, stdout

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}

Hier legen wir in der allerersten Zeile die Protokollierungsstufe fest – WARN. Und das bedeutet, dass Nachrichten, die mit Status an den Logger geschrieben werden, ignoriert werden DEBUG.INFO

  • Geben Sie an, welche Art von Appender wir verwenden werden -ConsoleAppender
  • Geben Sie an, wo wir das Protokoll schreiben werden -System.out
  • Wir legen die Klasse fest, die das Aufnahmeformat steuert –PatternLayout
  • Legen Sie das Aufnahmeformat für alle Nachrichten fest – Datum und Uhrzeit

4.3 Beliebte Protokollierungsfehler

Und noch ein wichtiger Punkt – häufige Fehler bei der Protokollierung. Es gibt nicht so viele Möglichkeiten, etwas zu tun, aber es lassen sich einige häufige Fehler identifizieren:

  1. Zu viel Protokollierung . Sie sollten nicht jeden Schritt protokollieren, was theoretisch wichtig sein kann. Es gibt eine Regel: Protokolle dürfen die Leistung nicht um mehr als 10 % belasten . Andernfalls kommt es zu Leistungsproblemen.
  2. Protokollierung aller Daten in einer Datei . Dies wird irgendwann dazu führen, dass das Lesen/Schreiben sehr schwierig wird, ganz zu schweigen davon, dass es auf bestimmten Systemen Dateigrößenbeschränkungen gibt.
  3. Verwendung der falschen Protokollierungsstufen . Jede Protokollierungsebene hat klare Grenzen und diese sollten respektiert werden. Wenn die Grenze unklar ist, können Sie sich auf die zu verwendende Ebene einigen.
Kommentare
  • Beliebt
  • Neu
  • Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
Auf dieser Seite gibt es noch keine Kommentare