@@ -5,15 +5,13 @@ package main
5
5
6
6
import (
7
7
"context"
8
- "fmt "
8
+ "log/slog "
9
9
"net"
10
10
"net/http"
11
11
"os"
12
12
"runtime/debug"
13
13
"syscall"
14
14
15
- "github.com/go-kit/log"
16
- "github.com/go-kit/log/level"
17
15
grpcprom "github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus"
18
16
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors"
19
17
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/auth"
@@ -43,30 +41,18 @@ const (
43
41
httpAddr = ":8081"
44
42
)
45
43
46
- // interceptorLogger adapts go-kit logger to interceptor logger.
44
+ // interceptorLogger adapts slog logger to interceptor logger.
47
45
// 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 ... )
63
49
})
64
50
}
65
51
66
52
func main () {
67
53
// 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 )
70
56
logTraceID := func (ctx context.Context ) logging.Fields {
71
57
if span := trace .SpanContextFromContext (ctx ); span .IsSampled () {
72
58
return logging.Fields {"traceID" , span .TraceID ().String ()}
@@ -92,7 +78,7 @@ func main() {
92
78
// Set up OTLP tracing (stdout for debug).
93
79
exporter , err := stdout .New (stdout .WithPrettyPrint ())
94
80
if err != nil {
95
- level .Error (logger ). Log ( "err" , err )
81
+ logger .Error ("failed to init exporter" , "err" , err )
96
82
os .Exit (1 )
97
83
}
98
84
tp := sdktrace .NewTracerProvider (
@@ -129,7 +115,7 @@ func main() {
129
115
})
130
116
grpcPanicRecoveryHandler := func (p any ) (err error ) {
131
117
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 ())
133
119
return status .Errorf (codes .Internal , "%s" , p )
134
120
}
135
121
@@ -158,7 +144,7 @@ func main() {
158
144
if err != nil {
159
145
return err
160
146
}
161
- level .Info (logger ). Log ( "msg" , "starting gRPC server" , "addr" , l .Addr ().String ())
147
+ logger .Info ("starting gRPC server" , "addr" , l .Addr ().String ())
162
148
return grpcSrv .Serve (l )
163
149
}, func (err error ) {
164
150
grpcSrv .GracefulStop ()
@@ -177,18 +163,18 @@ func main() {
177
163
},
178
164
))
179
165
httpSrv .Handler = m
180
- level .Info (logger ). Log ( "msg" , "starting HTTP server" , "addr" , httpSrv .Addr )
166
+ logger .Info ("starting HTTP server" , "addr" , httpSrv .Addr )
181
167
return httpSrv .ListenAndServe ()
182
168
}, func (error ) {
183
169
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 )
185
171
}
186
172
})
187
173
188
174
g .Add (run .SignalHandler (context .Background (), syscall .SIGINT , syscall .SIGTERM ))
189
175
190
176
if err := g .Run (); err != nil {
191
- level .Error (logger ). Log ( "err" , err )
177
+ logger .Error ("program interrupted" , "err" , err )
192
178
os .Exit (1 )
193
179
}
194
180
}
0 commit comments