Logging

Structured logging with debug, info, warn, and error levels.

Loading

local logger = require("logger")

Log Levels

Debug

logger:debug("message", {key = "value"})
Parameter Type Description
message string Log message
fields table? Contextual key-value pairs

Info

logger:info("message", {key = "value"})
Parameter Type Description
message string Log message
fields table? Contextual key-value pairs

Warn

logger:warn("message", {key = "value"})
Parameter Type Description
message string Log message
fields table? Contextual key-value pairs

Error

logger:error("message", {key = "value"})
Parameter Type Description
message string Log message
fields table? Contextual key-value pairs

Logger Customization

With Fields

Create a child logger with persistent fields.

local child = logger:with({request_id = id})
child:info("message")
Parameter Type Description
fields table Fields to attach to all logs

Returns: Logger

Named Logger

Create a named child logger.

local named = logger:named("auth")
named:info("message")
Parameter Type Description
name string Logger name

Returns: Logger

Errors

Condition Kind Retryable
Empty name string errors.INVALID no

See Error Handling for working with errors.