From 58c13ae9d98b2c023b5f913b01e120632c308134 Mon Sep 17 00:00:00 2001 From: Wojtek Bednarzak Date: Wed, 20 Sep 2023 00:16:08 +0300 Subject: [PATCH] Use slog.Logger with webserver-go (#200) The package has been updated to use slog.Logger instead of zap, so we can provide the logger again, with added Unwrap method so that we can access the underlying logger rather than our version. --- .github/workflows/go-ci.yml | 2 +- cmd/saferplace/saferplace.go | 2 +- go.mod | 4 +--- go.sum | 10 ++-------- internal/cmd/saferplace/saferplace.go | 4 ++-- internal/log/log.go | 6 ++++++ 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/.github/workflows/go-ci.yml b/.github/workflows/go-ci.yml index a4dcf7a..88f5b46 100644 --- a/.github/workflows/go-ci.yml +++ b/.github/workflows/go-ci.yml @@ -93,7 +93,7 @@ jobs: go-version-file: 'go.mod' - name: Build - run: go build ./cmd/saferplace -o saferplace + run: go build -o saferplace ./cmd/saferplace # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild diff --git a/cmd/saferplace/saferplace.go b/cmd/saferplace/saferplace.go index d972921..4cbb19c 100644 --- a/cmd/saferplace/saferplace.go +++ b/cmd/saferplace/saferplace.go @@ -17,7 +17,7 @@ func main() { } func run() error { - configFile := flag.String("config", "", "Config file") + configFile := flag.String("config", "/etc/saferplace/config.yaml", "Config file") flag.Parse() components := saferplace.AllComponents() diff --git a/go.mod b/go.mod index 5710cfe..d6aff2d 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/kelseyhightower/envconfig v1.4.0 github.com/mattn/go-sqlite3 v1.14.17 github.com/minio/minio-go/v7 v7.0.63 - github.com/saferplace/webserver-go v0.0.5 + github.com/saferplace/webserver-go v0.0.6 go.opentelemetry.io/otel v1.17.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.17.0 go.opentelemetry.io/otel/sdk v1.17.0 @@ -51,8 +51,6 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.17.0 go.opentelemetry.io/otel/metric v1.17.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect - go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.25.0 // indirect golang.org/x/crypto v0.12.0 // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/sys v0.12.0 // indirect diff --git a/go.sum b/go.sum index 928a9b1..a844aa9 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,6 @@ connectrpc.com/connect v1.11.1 h1:dqRwblixqkVh+OFBOOL1yIf1jS/yP0MSJLijRj29bFg= connectrpc.com/connect v1.11.1/go.mod h1:3AGaO6RRGMx5IKFfqbe3hvK1NqLosFNP2BxDYTPmNPo= connectrpc.com/otelconnect v0.5.0 h1:K7xQKFbgeaHx563B+IIbd1EJe856AanueIYtGEtdnH8= connectrpc.com/otelconnect v0.5.0/go.mod h1:cjBMmtJmTokg4/k/3iDjLOjfNVM4qSVfIWz/qWQ8FNw= -github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= -github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bwmarrin/discordgo v0.27.1 h1:ib9AIc/dom1E/fSIulrBwnez0CToJE113ZGt4HoliGY= @@ -86,8 +84,8 @@ github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/saferplace/api v0.0.18 h1:bFtvpObqSe3tywPEAlJ9egThPrZQY/3ErZJqS3Zq+is= github.com/saferplace/api v0.0.18/go.mod h1:lRxRMAomMgkH/vAE0BDiZnotYa0DeMTQybA4sdprWNw= -github.com/saferplace/webserver-go v0.0.5 h1:f3YEOXUdNkVv334mvDBkvHN0tOuchKBRibALOp6DduI= -github.com/saferplace/webserver-go v0.0.5/go.mod h1:ybzRFTKzWiSS9BW+TgbeZr1f5/0/MRgtJQLZqvufhPE= +github.com/saferplace/webserver-go v0.0.6 h1:uhXWjF0pbWr8lT+AE3cnYYozJUuLWwEZLWWJ2GZn174= +github.com/saferplace/webserver-go v0.0.6/go.mod h1:OJkIjWNGIKvtqB1Mgd7ZGWa3gkEVEP+fbUen9KStiSs= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -113,10 +111,6 @@ go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lI go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.25.0 h1:4Hvk6GtkucQ790dqmj7l1eEnRdKm3k3ZUrUMS2d5+5c= -go.uber.org/zap v1.25.0/go.mod h1:JIAUzQIH94IC4fOJQm7gMmBJP5k7wQfdcnYdPoEXJYk= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= diff --git a/internal/cmd/saferplace/saferplace.go b/internal/cmd/saferplace/saferplace.go index 7184ef3..55c492b 100644 --- a/internal/cmd/saferplace/saferplace.go +++ b/internal/cmd/saferplace/saferplace.go @@ -3,6 +3,7 @@ package saferplace import ( "context" "fmt" + "log/slog" "net/http" _ "net/http/pprof" @@ -83,8 +84,7 @@ func Run(ctx context.Context, components []Component, cfg *config.Config) (err e } srv, err := webserver.New( - // TODO: Enable slog in webserver - // webserver.Logger(deps.logger.With(slog.String("component", "server"))), + webserver.Logger(deps.logger.Unwrap().With(slog.String("component", "server"))), webserver.Services(services...), webserver.TLSConfig(tlsConfig), webserver.Middlewares(middlewares...), diff --git a/internal/log/log.go b/internal/log/log.go index f280e67..15c7207 100644 --- a/internal/log/log.go +++ b/internal/log/log.go @@ -15,6 +15,7 @@ type Logger interface { Error(context.Context, string, ...slog.Attr) With(...slog.Attr) Logger + Unwrap() *slog.Logger } var _ Logger = (*logger)(nil) @@ -60,6 +61,11 @@ func (l *logger) With(args ...slog.Attr) Logger { return New(l.l.Handler().WithAttrs(args)) } +// Unwrap returns the underlying [slog.Logger] +func (l *logger) Unwrap() *slog.Logger { + return l.l +} + // Error is the standard Entry for when we want to log an error func Error(err error) slog.Attr { return slog.String("error", err.Error())