A Loki Handler for slog Go library.
See also:
- slog-multi:
slog.Handler
chaining, fanout, routing, failover, load balancing... - slog-formatter:
slog
attribute formatting - slog-sampling:
slog
sampling policy - slog-gin: Gin middleware for
slog
logger - slog-echo: Echo middleware for
slog
logger - slog-fiber: Fiber middleware for
slog
logger - slog-datadog: A
slog
handler forDatadog
- slog-rollbar: A
slog
handler forRollbar
- slog-sentry: A
slog
handler forSentry
- slog-syslog: A
slog
handler forSyslog
- slog-logstash: A
slog
handler forLogstash
- slog-fluentd: A
slog
handler forFluentd
- slog-graylog: A
slog
handler forGraylog
- slog-loki: A
slog
handler forLoki
- slog-slack: A
slog
handler forSlack
- slog-telegram: A
slog
handler forTelegram
- slog-mattermost: A
slog
handler forMattermost
- slog-microsoft-teams: A
slog
handler forMicrosoft Teams
- slog-webhook: A
slog
handler forWebhook
- slog-kafka: A
slog
handler forKafka
go get github.com/samber/slog-loki
Compatibility: go >= 1.20.3
This library is v0 and follows SemVer strictly. On slog
final release (go 1.21), this library will go v1.
No breaking changes will be made to exported APIs before v1.0.0.
GoDoc: https://pkg.go.dev/github.com/samber/slog-loki
type Option struct {
// log level (default: debug)
Level slog.Leveler
// loki endpoint
Endpoint string
// log batching
BatchWait time.Duration
BatchEntriesNumber int
}
Attributes will be injected in log payload.
Attributes added to records are not accepted.
import (
slogloki "github.com/samber/slog-loki"
"golang.org/x/exp/slog"
)
func main() {
endpoint := "localhost:3100"
logger := slog.New(slogloki.Option{Level: slog.LevelDebug, Endpoint: endpoint}.NewLokiHandler())
logger = logger.
With("environment", "dev").
With("release", "v1.0.0")
// log error
logger.Error("caramba!")
// log user signup
logger.Info("user registration")
}
- Ping me on twitter @samuelberthe (DMs, mentions, whatever :))
- Fork the project
- Fix open issues or request new features
Don't hesitate ;)
# Install some dev dependencies
make tools
# Run tests
make test
# or
make watch-test
Give a ⭐️ if this project helped you!
Copyright © 2023 Samuel Berthe.
This project is MIT licensed.