Protokollierung

Das Modul logger schreibt strukturierte Nachrichten auf den Stufen Debug, Info, Warn und Error.

Diese Seite ist eine API-Referenz. Jeder Ausschnitt ist eine einzelne Logging-Operation und setzt einen Ausführungskontext mit der gewünschten Logger-Konfiguration voraus.

Log-Aufrufe geben keine Werte zurück. Sofern der Ausführungskontext sie bereitstellt, ergänzt jeder Aufruf außerdem die Prozess-pid und die aus dem aktuellen Frame abgeleitete location.

Laden

local logger = require("logger")

Log-Levels

logger:debug

Schreibt eine Nachricht der Stufe Debug.

logger:debug("message", {key = "value"})

logger:info

Schreibt eine Nachricht der Stufe Info.

logger:info("message", {key = "value"})

logger:warn

Schreibt eine Nachricht der Stufe Warn.

logger:warn("message", {key = "value"})

logger:error

Schreibt eine Nachricht der Stufe Error.

logger:error("message", {key = "value"})
Parameter Typ Beschreibung
message string Log-Nachricht
fields table? Kontextuelle Schlüssel-Wert-Paare

Alle vier Log-Methoden akzeptieren dieselben Parameter. Nur Zeichenkettenschlüssel werden zu Feldnamen. Zeichenketten, Zahlen, Ganzzahlen, boolesche Werte, Fehler und strukturierte Lua-Werte werden in Log-Felder konvertiert; andere Schlüssel werden ignoriert.

Bei logger:error wird ein Feld namens error als Fehlerfeld ausgegeben und aus der übergebenen Tabelle entfernt, bevor die übrigen Felder verarbeitet werden. Verwenden Sie diese Tabelle nicht erneut, wenn der Eintrag error erhalten bleiben muss.

Logger-Anpassung

logger:with

Erstellt einen Child-Logger mit persistenten Feldern.

local function request_logger(request_id)
    return logger:with({request_id = request_id})
end

request_logger("req-123"):info("message")
Parameter Typ Beschreibung
fields table Felder, die an alle Logs angehangt werden

Gibt zurück: Logger

Der ursprüngliche Logger bleibt unverändert. Child-Logger können mit weiteren Aufrufen von with und named verkettet werden.

logger:named

Erstellt einen benannten Child-Logger.

local named = logger:named("auth")
named:info("message")
Parameter Typ Beschreibung
name string Logger-Name

Gibt zurück: Logger

Ein leerer Name löst einen Lua-Argumentfehler aus; er wird nicht als strukturierter Wert errors.INVALID zurückgegeben.

logger:named("") löst einen Lua-Argumentfehler aus (name cannot be empty), statt einen Fehlerwert zurückzugeben. Logging-Methoden geben nichts zurück.

Siehe Fehlerbehandlung für die Arbeit mit Fehlern.