Go Wiki:slog 资源
此页面链接到使用或增强标准库的结构化日志记录包 slog
的项目。
日志记录格式
- slog-formatter:slog 的常见格式化程序 + 构建您自己的格式化程序的帮助程序:https://github.com/samber/slog-formatter
- ConsoleHandler(类似于 Zap 的 ConsoleEncoder):https://gist.github.com/wijayaerick/de3de10c47a79d5310968ba5ff101a19
- logf(attr {key} 插值,丰富的 tty 输出):https://pkg.go.dev/github.com/AndrewHarrisSPU/logf(使用惰性 Handler 存储:https://golang.ac.cn/play/p/psdD7KDF5fp)
- slogd - 带有持续时间的 slog https://github.com/kaihendry/slogd,带有视频 https://youtu.be/IsPa11N5pzI
- tinted(彩色)输出:https://pkg.go.dev/github.com/lmittmann/tint
- humane:一个对人友好的(但仍然在很大程度上是结构化的)slog Handler:https://github.com/telemachus/humane
- slug:为人类打印彩色日志的处理程序:https://github.com/dotse/slug
- slogor:一个彩色 slog 处理程序:https://gitlab.com/greyxor/slogor
- klog:Kubernetes 使用的文本格式。在使用主程序包的记录器时提供 klog 输出路由,以及一个仅写入 stderr 的更简单的记录器。slog/logr 和 go-logr/logr API 均受支持。
- slogjson:使用即将推出的JSON v2 库进行格式化,并提供可选的单行美化打印:https://github.com/veqryn/slog-json
记录器桥接
- Zap 处理程序,一个使用 Zap 的 slog 处理程序:https://github.com/chanchal1987/zaphandler
- zapr:从 v1.3.0 开始,slog/logr 和 go-logr/logr API 均受同一记录器实例支持。
日志记录中间件
- slogctx:在上下文中存储属性或记录器,从上下文中读取任何自定义值:https://github.com/veqryn/slog-context
- slog-context/otel:自动读取并向日志中添加 OpenTelemetry TraceID 和 SpanID,并可以设置 Span 错误代码:github.com/veqryn/slog-context/otel
- slogdedup:属性键的去重和排序,具有多种策略,适用于 json 日志记录。输出到 Stackdriver、Graylog 等的便捷方法:https://github.com/veqryn/slog-dedup
HTTP 服务器中间件
- slog-gin:slog 记录器的 Gin 中间件:https://github.com/samber/slog-gin
- slog-echo:slog 记录器的 Echo 中间件:https://github.com/samber/slog-echo
- slog-fiber:slog 记录器的 Fiber 中间件:https://github.com/samber/slog-fiber
- slog-chi:slog 记录器的 Chi 中间件:https://github.com/samber/slog-chi
日志接收器
- 同时使用 OpenTelemetry 和
slog
的实验示例:https://github.com/justinsb/experiments-slog - 带有 opentelemetry 跟踪的简单 slog 处理程序:https://github.com/ttys3/slogsimple/tree/main
- slog-datadog:Datadog 的
slog.Handler
:https://github.com/samber/slog-datadog - slog-rollbar:Rollbar 的
slog.Handler
:https://github.com/samber/slog-rollbar - slog-sentry:Sentry 的
slog.Handler
:https://github.com/samber/slog-sentry - slog-syslog:Syslog 的
slog.Handler
:https://github.com/samber/slog-syslog - slog-logstash:Logstash 的
slog.Handler
:https://github.com/samber/slog-logstash - slog-fluentd:Fluentd 的
slog.Handler
:https://github.com/samber/slog-fluentd - slog-graylog:Graylog 的
slog.Handler
:https://github.com/samber/slog-graylog - slog-loki:Loki 的
slog.Handler
:https://github.com/samber/slog-loki - slog-slack:Slack 的
slog.Handler
:https://github.com/samber/slog-slack - slog-telegram:Telegram 的
slog.Handler
:https://github.com/samber/slog-telegram - slog-mattermost:Mattermost 的
slog.Handler
:https://github.com/samber/slog-mattermost - slog-microsoft-teams:Microsoft Teams 的
slog.Handler
:https://github.com/samber/slog-microsoft-teams - slog-webhook:Webhook 的
slog.Handler
:https://github.com/samber/slog-webhook - slog-kafka:Kafka 的
slog.Handler
:https://github.com/samber/slog-kafka - slogbugsnag:Bugsnag 的
slog.Handler
:https://github.com/veqryn/slog-bugsnag - slogdriver:Stackdriver Logging/GCP Cloud Logging 的
slog.Handler
:https://github.com/jussi-kalliokoski/slogdriver
处理程序
- slog-multi:
slog.Handler
链(管道、扇出,…):https://github.com/samber/slog-multi - 各种处理程序:https://github.com/galecore/xslog
其他
- jba 编写的其他资源:https://github.com/jba/slog
- slog-sampling:删除重复的日志条目:https://github.com/samber/slog-sampling
- slog-context:添加从上下文读取值的支持:https://github.com/PumpkinSeed/slog-context
- slogassert:处理代码发出的 slog 日志的测试:https://github.com/thejerf/slogassert
- sloggen:为
log/slog
生成各种帮助程序:https://github.com/go-simpler/sloggen - sloglint:在使用
log/slog
时确保一致的代码风格:https://github.com/go-simpler/sloglint
此内容是 Go Wiki 的一部分。