reugn / pkgslog

A package level structured log/slog handler for Go

Home Page:https://pkg.go.dev/github.com/reugn/pkgslog

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pkgslog

Build PkgGoDev Go Report Card codecov

A structured log handler for log/slog that can be configured at the package level.
pkgslog allows you to set the minimum log level requirement for each package in your application.

Usage Example

textHandler := slog.NewTextHandler(os.Stdout, nil)
packageMap := map[string]slog.Level{
    "github.com/reugn/pkgslog/internal":  slog.LevelWarn,
    "github.com/reugn/pkgslog/pkg":       slog.LevelDebug,
    "github.com/reugn/pkgslog/pkg/inner": slog.LevelInfo,
}
logger := slog.New(pkgslog.NewPackageHandler(textHandler, packageMap))

Benchmarks

Benchmark results compared to the standard slog.TextHandler

BenchmarkPkgSlog-16       590906              2029 ns/op             232 B/op          2 allocs/op
BenchmarkSlog-16         1733892               701.6 ns/op             0 B/op          0 allocs/op

License

Licensed under the MIT License.

About

A package level structured log/slog handler for Go

https://pkg.go.dev/github.com/reugn/pkgslog

License:MIT License


Languages

Language:Go 100.0%