@@ -5,15 +5,13 @@ package main
55
66import (
77 "context"
8- "fmt "
8+ "log/slog "
99 "net"
1010 "net/http"
1111 "os"
1212 "runtime/debug"
1313 "syscall"
1414
15- "github.com/go-kit/log"
16- "github.com/go-kit/log/level"
1715 grpcprom "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus"
1816 "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors"
1917 "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/auth"
@@ -43,30 +41,18 @@ const (
4341 httpAddr = ":8081"
4442)
4543
46- // interceptorLogger adapts go-kit logger to interceptor logger.
44+ // interceptorLogger adapts slog logger to interceptor logger.
4745// This code is simple enough to be copied and not imported.
48- func interceptorLogger (l log.Logger ) logging.Logger {
49- return logging .LoggerFunc (func (_ context.Context , lvl logging.Level , msg string , fields ... any ) {
50- largs := append ([]any {"msg" , msg }, fields ... )
51- switch lvl {
52- case logging .LevelDebug :
53- _ = level .Debug (l ).Log (largs ... )
54- case logging .LevelInfo :
55- _ = level .Info (l ).Log (largs ... )
56- case logging .LevelWarn :
57- _ = level .Warn (l ).Log (largs ... )
58- case logging .LevelError :
59- _ = level .Error (l ).Log (largs ... )
60- default :
61- panic (fmt .Sprintf ("unknown level %v" , lvl ))
62- }
46+ func interceptorLogger (l * slog.Logger ) logging.Logger {
47+ return logging .LoggerFunc (func (ctx context.Context , lvl logging.Level , msg string , fields ... any ) {
48+ l .Log (ctx , slog .Level (lvl ), msg , fields ... )
6349 })
6450}
6551
6652func main () {
6753 // Setup logging.
68- logger := log . NewLogfmtLogger ( os .Stderr )
69- rpcLogger := log .With (logger , "service" , "gRPC/server" , "component" , component )
54+ logger := slog . New ( slog . NewTextHandler ( os .Stderr , & slog. HandlerOptions {}) )
55+ rpcLogger := logger .With ("service" , "gRPC/server" , "component" , component )
7056 logTraceID := func (ctx context.Context ) logging.Fields {
7157 if span := trace .SpanContextFromContext (ctx ); span .IsSampled () {
7258 return logging.Fields {"traceID" , span .TraceID ().String ()}
@@ -92,7 +78,7 @@ func main() {
9278 // Set up OTLP tracing (stdout for debug).
9379 exporter , err := stdout .New (stdout .WithPrettyPrint ())
9480 if err != nil {
95- level .Error (logger ). Log ( "err" , err )
81+ logger .Error ("failed to init exporter" , "err" , err )
9682 os .Exit (1 )
9783 }
9884 tp := sdktrace .NewTracerProvider (
@@ -129,7 +115,7 @@ func main() {
129115 })
130116 grpcPanicRecoveryHandler := func (p any ) (err error ) {
131117 panicsTotal .Inc ()
132- level .Error (rpcLogger ). Log ( "msg" , "recovered from panic" , "panic" , p , "stack" , debug .Stack ())
118+ rpcLogger .Error ("recovered from panic" , "panic" , p , "stack" , debug .Stack ())
133119 return status .Errorf (codes .Internal , "%s" , p )
134120 }
135121
@@ -158,7 +144,7 @@ func main() {
158144 if err != nil {
159145 return err
160146 }
161- level .Info (logger ). Log ( "msg" , "starting gRPC server" , "addr" , l .Addr ().String ())
147+ logger .Info ("starting gRPC server" , "addr" , l .Addr ().String ())
162148 return grpcSrv .Serve (l )
163149 }, func (err error ) {
164150 grpcSrv .GracefulStop ()
@@ -177,18 +163,18 @@ func main() {
177163 },
178164 ))
179165 httpSrv .Handler = m
180- level .Info (logger ). Log ( "msg" , "starting HTTP server" , "addr" , httpSrv .Addr )
166+ logger .Info ("starting HTTP server" , "addr" , httpSrv .Addr )
181167 return httpSrv .ListenAndServe ()
182168 }, func (error ) {
183169 if err := httpSrv .Close (); err != nil {
184- level .Error (logger ). Log ( "msg" , "failed to stop web server" , "err" , err )
170+ logger .Error ("failed to stop web server" , "err" , err )
185171 }
186172 })
187173
188174 g .Add (run .SignalHandler (context .Background (), syscall .SIGINT , syscall .SIGTERM ))
189175
190176 if err := g .Run (); err != nil {
191- level .Error (logger ). Log ( "err" , err )
177+ logger .Error ("program interrupted" , "err" , err )
192178 os .Exit (1 )
193179 }
194180}
0 commit comments