log module
The glu.log module
The glu.log module provides structured logging from Lua. It uses the same logging backend as glu itself — messages appear in the same format and are controlled by the --loglevel flag.
local log = require("glu.log")Functions
| Function | Level | Description |
|---|---|---|
debug(msg, ...) |
debug | Verbose output for development |
info(msg, ...) |
info | Normal operational messages |
warn(msg, ...) |
warn | Potential problems |
error(msg, ...) |
error | Errors that need attention |
Usage
Each function takes a message string followed by optional key-value pairs:
local log = require("glu.log")
log.info("Processing started", "file", "report.md")
log.warn("Missing field", "field", "author", "page", 3)
log.debug("Computed value", "result", 42)Output (with --loglevel info):
· Processing started (file=report.md)
W: Missing field (field=author,page=3)The debug message is suppressed because the log level is info. To see debug messages:
glu --loglevel debug document.mdLog levels
The --loglevel flag controls which messages are visible:
| Level | Shows |
|---|---|
debug |
debug, info, warn, error |
info |
info, warn, error (default) |
warn |
warn, error |
error |
error only |
Lua log messages and glu’s internal log messages share the same level — setting --loglevel debug shows both your messages and glu’s internal diagnostics.
Example: logging in callbacks
local frontend = require("glu.frontend")
local log = require("glu.log")
frontend.add_callback("document_start", "log_start", function()
log.info("Document processing started")
end)
frontend.add_callback("pre_shipout", "log_page", function(doc, page, pagenum)
log.debug("Shipping page", "page", pagenum)
end)
frontend.add_callback("document_end", "log_end", function()
log.info("Document finished", "pages", _aux._pages)
end)