Logging

El módulo logger escribe mensajes estructurados en los niveles debug, info, warn y error.

Esta es una referencia de API. Cada fragmento es una operación de logging aislada y supone un contexto de ejecución con la configuración de logger deseada.

Las llamadas de logging no devuelven valores. Cuando el contexto de ejecución los proporciona, cada llamada también añade el pid del proceso y la location de origen derivada del frame actual.

Carga

local logger = require("logger")

Niveles de Log

logger:debug

Escribe un mensaje de nivel debug.

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

logger:info

Escribe un mensaje de nivel info.

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

logger:warn

Escribe un mensaje de nivel warning.

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

logger:error

Escribe un mensaje de nivel error.

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

Los cuatro métodos de nivel de log aceptan los mismos parámetros:

Parámetro Tipo Descripción
message string Mensaje de log
fields table? Pares clave-valor contextuales

Solo las claves string se convierten en nombres de campos. Strings, números, enteros, booleanos, errores y valores Lua estructurados se convierten en campos de log; las claves que no son strings se ignoran.

En logger:error, un campo llamado error se emite como campo de error y se elimina de la tabla proporcionada antes de procesar los demás campos. No reutilice esa tabla si necesita conservar la entrada error.

Personalizacion de Logger

logger:with

Crear un logger hijo con campos persistentes.

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

request_logger("req-123"):info("message")
Parámetro Tipo Descripción
fields table Campos a adjuntar a todos los logs

Devuelve: Logger

El logger original no cambia. Los loggers hijos pueden encadenarse con llamadas adicionales a with y named.

logger:named

Crear un logger hijo nombrado.

local named = logger:named("auth")
named:info("message")
Parámetro Tipo Descripción
name string Nombre del logger

Devuelve: Logger

Un nombre vacío genera un error de argumento Lua. No se devuelve como un valor estructurado errors.INVALID.

logger:named("") lanza un error de argumento de Lua (name cannot be empty) en lugar de devolver un valor de error. Los métodos de logging no devuelven nada.

Consulte Manejo de Errores para trabajar con errores.