glu
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.md

Log 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)