applog

Opinionated slog wiring for go-toolkit app lifecycles.

Install

go get gitea.auvem.com/go-toolkit/applog

Usage

lifecycle := app.NewLifecycle(applog.AppLogOpts{
    ConsoleOutput: os.Stderr,
    ConsoleLevel:  slog.LevelInfo,
    FileOutput:    "/var/log/myapp.log",
    FileLevel:     slog.LevelInfo,
}.Module())

Outputs

Sink Format Default level
Console (ConsoleOutput) tint (human-readable) Info
File (FileOutput) JSON lines Info

Teardown

On teardown the log file is closed and the lifecycle logger falls back to console-only (or discard). Logging via lifecycle.Logger() after teardown does not write to a closed file.

Migration from pre-V1 API

Before After
applog.Module(opts) opts.Module()
LogOutput ConsoleOutput
LogFile FileOutput
Verbose bool ConsoleLevel: slog.LevelDebug
S
Description
applog is a opinionated logger configuration.
Readme BSD-3-Clause 39 KiB
Languages
Go 100%