Logging#
boxes and glue uses the standard library's slog package for structured logging.
Enable logging#
boxes and glue starts with logging disabled. It uses the bag.Logger
as a logger.
To enable logging, you must create a log handler:
for JSON output and
for text output. The bag.SetLogger()
function makes sure that the called libraries use the same logger.
Using the logger#
The logger can be used like this:
which outputs (in JSON)
{
"time":"2023-07-16T16:42:59.619968+02:00",
"level":"INFO",
"msg":"Read font file",
"filename":"MinionPro-Regular.otf"
}
You can use bag.Logger
to set the default logger:
Changing the log level#
Instead of setting nil as the handler option in NewJSONHandler and NewTextHandler you can set the log level:
this is a complete example for setting the logger with a log level warn:
myLogger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelWarn}))
bag.SetLogger(myLogger)
// eof