slog: Telegram handler
A Telegram Handler for slog Go library.
See also:
🚀 Install
go get github.com/samber/slog-telegram
Compatibility: go >= 1.21
No breaking changes will be made to exported APIs before v2.0.0.
💡 Usage
GoDoc: https://pkg.go.dev/github.com/samber/slog-telegram
Handler options
type Option struct {
// log level (default: debug)
Level slog.Leveler
// Telegram bot token
Token string
// Username of the channel in the form of `@username`
Username string
// optional: customize Telegram message builder
Converter Converter
}
Attributes will be injected in message.
Example
import (
slogtelegram "github.com/samber/slog-telegram"
"log/slog"
)
func main() {
token := "xxxx"
username := "@xxxx"
logger := slog.New(slogtelegram.Option{Level: slog.LevelDebug, Token: token, Username: username}.NewTelegramHandler())
logger = logger.With("release", "v1.0.0")
logger.
With(
slog.Group("user",
slog.String("id", "user-123"),
slog.Time("created_at", time.Now().AddDate(0, 0, -1)),
),
).
With("environment", "dev").
With("error", fmt.Errorf("an error")).
Error("A message")
}
🤝 Contributing
Don't hesitate ;)
# Install some dev dependencies
make tools
# Run tests
make test
# or
make watch-test
👤 Contributors
💫 Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2023 Samuel Berthe.
This project is MIT licensed.