@@ -9,15 +9,14 @@ package main
9
9
import (
10
10
"context"
11
11
"fmt"
12
+ "log/slog"
12
13
"os"
13
14
"os/signal"
14
15
"strings"
15
16
"sync"
16
17
"syscall"
17
18
18
19
"github.com/IBM/sarama"
19
- "github.com/sirupsen/logrus"
20
- "github.com/uptrace/opentelemetry-go-extra/otellogrus"
21
20
"go.opentelemetry.io/otel"
22
21
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
23
22
"go.opentelemetry.io/otel/propagation"
@@ -27,21 +26,14 @@ import (
27
26
"github.com/open-telemetry/opentelemetry-demo/src/accountingservice/kafka"
28
27
)
29
28
30
- var log * logrus.Logger
31
29
var resource * sdkresource.Resource
32
30
var initResourcesOnce sync.Once
33
31
34
- func init () {
35
- log = logrus .New ()
36
- log .AddHook (otellogrus .NewHook (otellogrus .WithLevels (
37
- logrus .PanicLevel ,
38
- logrus .FatalLevel ,
39
- logrus .ErrorLevel ,
40
- logrus .WarnLevel ,
41
- )))
42
- log .Out = os .Stdout
32
+ func initLogger () * slog.Logger {
33
+ logger := slog .New (slog .NewJSONHandler (os .Stderr , nil )).With ("service" , "accounting" )
34
+ slog .SetDefault (logger )
35
+ return logger
43
36
}
44
-
45
37
func initResource () * sdkresource.Resource {
46
38
initResourcesOnce .Do (func () {
47
39
extraResources , _ := sdkresource .New (
@@ -76,40 +68,41 @@ func initTracerProvider() (*sdktrace.TracerProvider, error) {
76
68
}
77
69
78
70
func main () {
71
+ logger := initLogger ()
79
72
ctx := context .Background ()
80
73
tp , err := initTracerProvider ()
81
74
if err != nil {
82
- log . WithContext (ctx ). WithContext ( ctx )
75
+ logger . LogAttrs (ctx , slog . LevelError , "failed to initialize trace provider" , slog . String ( "error" , err . Error ()) )
83
76
}
84
77
defer func () {
85
78
if err := tp .Shutdown (ctx ); err != nil {
86
- log . WithContext (ctx ). WithError ( err )
79
+ logger . LogAttrs (ctx , slog . LevelError , "failed to shotdown properly" , slog . String ( "error" , err . Error ()) )
87
80
}
88
- log . WithContext (ctx ). WithField ( "Message " , "Shotdown trace provider" )
81
+ logger . LogAttrs (ctx , slog . LevelInfo , "" , slog . String ( "message " , "Shotdown trace provider" ) )
89
82
}()
90
83
91
84
var brokers string
92
85
mustMapEnv (& brokers , "KAFKA_SERVICE_ADDR" )
93
86
94
87
brokerList := strings .Split (brokers , "," )
95
- log . WithField ( "Kafka brokers: %s" , strings .Join (brokerList , ", " ))
88
+ logger . LogAttrs ( ctx , slog . LevelInfo , "Kafka brokers" , slog . String ( "Kafka brokers" , strings .Join (brokerList , "," ) ))
96
89
97
90
ctx , cancel := signal .NotifyContext (context .Background (), os .Interrupt , syscall .SIGTERM , syscall .SIGKILL )
98
91
defer cancel ()
99
92
var consumerGroup sarama.ConsumerGroup
100
- if consumerGroup , err = kafka .StartConsumerGroup (ctx , brokerList , log ); err != nil {
101
- log . WithContext (ctx ). WithError ( err )
93
+ if consumerGroup , err = kafka .StartConsumerGroup (ctx , brokerList , logger ); err != nil {
94
+ logger . LogAttrs (ctx , slog . LevelError , "Failed to start consumer group" , slog . String ( "error" , err . Error ()) )
102
95
}
103
96
defer func () {
104
97
if err := consumerGroup .Close (); err != nil {
105
- log . WithContext (ctx ). WithField ( "Error closing consumer group: %v" , err )
98
+ logger . LogAttrs (ctx , slog . LevelError , "Error closing consumer group" , slog . String ( "error" , err . Error ()) )
106
99
}
107
- log . WithContext (ctx ). WithField ( "Message" , "Closed consumer group" )
100
+ logger . Log (ctx , slog . LevelInfo , "Closed consumer group" )
108
101
}()
109
102
110
103
<- ctx .Done ()
111
104
112
- log . WithContext (ctx ). WithField ( "Message " , "Accounting service exited" )
105
+ logger . Log (ctx , slog . LevelInfo , "message " , "Accounting service exited" )
113
106
}
114
107
115
108
func mustMapEnv (target * string , envKey string ) {
0 commit comments