Verwenden der Logger-Bibliothek - So schreiben Sie Logmeldungen in Ruby

Die Verwendung der Logger-Bibliothek in Ruby ist eine einfache Möglichkeit, um festzustellen, ob ein Fehler in Ihrem Code aufgetreten ist. Wenn etwas schief geht, können Sie Stunden beim Auffinden des Fehlers sparen, wenn Sie genau wissen, was vor dem Fehler passiert ist. Wenn Ihre Programme größer und komplexer werden, möchten Sie möglicherweise eine Möglichkeit zum Schreiben von Protokollnachrichten hinzufügen. Ruby enthält eine Reihe nützlicher Klassen und Bibliotheken, die als Standardbibliothek bezeichnet werden. Dazu gehört die Logger-Bibliothek, die eine priorisierte und gedrehte Protokollierung bietet.

Grundsätzliche Verwendung

Da die Logger-Bibliothek mit Ruby ausgeliefert wird, müssen keine Gems oder andere Bibliotheken installiert werden. Um mit der Verwendung der Logger-Bibliothek zu beginnen, benötigen Sie einfach "Logger" und erstellen ein neues Logger-Objekt. Alle in das Logger-Objekt geschriebenen Nachrichten werden in die Protokolldatei geschrieben.

#! / usr / bin / env ruby
Benötige 'Logger'
log = Logger.new ('log.txt')
log.debug "Protokolldatei erstellt"

Prioritäten

Jede Protokollnachricht hat eine Priorität. Diese Prioritäten vereinfachen das Durchsuchen von Protokolldateien nach wichtigen Nachrichten sowie das automatische Herausfiltern von kleineren Nachrichten durch das Protokollierungsobjekt, wenn diese nicht benötigt werden. Sie können sich das wie Ihre Aufgabenliste für den Tag vorstellen. Manche Dinge müssen unbedingt erledigt werden, manche sollten wirklich erledigt werden, und manche Dinge können verschoben werden, bis Sie Zeit haben, sie zu erledigen.

Im vorherigen Beispiel war die Priorität debuggen, die am wenigsten wichtige aller Prioritäten (das "Aufschieben, bis Sie Zeit haben" Ihrer To-Do-Liste, wenn Sie so wollen). Die Protokollnachrichtenprioritäten lauten in der Reihenfolge von der niedrigsten zur wichtigsten: Debug, Info, Warnung, Fehler und Schwerwiegend. Verwenden Sie die Taste, um die Anzahl der Meldungen festzulegen, die der Logger ignorieren soll Niveau Attribut.

#! / usr / bin / env ruby
Benötige 'Logger'
log = Logger.new ('log.txt')
log.level = Logger :: WARN
log.debug "Dies wird ignoriert"
log.error "Dies wird nicht ignoriert"

Sie können so viele Protokollmeldungen erstellen, wie Sie möchten, und Sie können jede Kleinigkeit protokollieren, die Ihr Programm ausführt, was Prioritäten äußerst nützlich macht. Wenn Sie Ihr Programm ausführen, können Sie die Logger-Ebene auf etwas wie "warnen" oder "fehlerhaft" belassen, um wichtige Informationen abzufangen. Wenn dann etwas schief geht, können Sie die Protokollierungsstufe verringern (entweder im Quellcode oder mit einer Befehlszeilenoption), um weitere Informationen zu erhalten.

Drehung

Die Logger-Bibliothek unterstützt auch die Rotation von Logs. Die Protokollrotation verhindert, dass Protokolle zu groß werden, und hilft beim Durchsuchen älterer Protokolle. Wenn die Protokollrotation aktiviert ist und das Protokoll eine bestimmte Größe oder ein bestimmtes Alter erreicht, benennt die Protokollbibliothek diese Datei um und erstellt eine neue Protokolldatei. Ältere Protokolldateien können auch so konfiguriert werden, dass sie nach einem bestimmten Alter gelöscht werden (oder nicht mehr rotieren).

Um die Protokollrotation zu aktivieren, übergeben Sie "monatlich", "wöchentlich" oder "täglich" an den Logger-Konstruktor. Optional können Sie dem Konstruktor eine maximale Dateigröße und Anzahl von Dateien übergeben, die in Rotation bleiben sollen.

#! / usr / bin / env ruby
Benötige 'Logger'
log = Logger.new ('log.txt', 'daily')
log.debug "Sobald das Protokoll mindestens eins wird"
log.debug "Tag alt, es wird umbenannt und ein"
log.debug "Neue log.txt-Datei wird erstellt."