Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6a5545a

Browse files
committedMar 28, 2024·
Replaced logrus with slog
1 parent f50deea commit 6a5545a

File tree

2 files changed

+19
-41
lines changed

2 files changed

+19
-41
lines changed
 

‎src/accountingservice/kafka/consumer.go

+4-19
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ package kafka
44

55
import (
66
"context"
7+
"log/slog"
78

89
pb "github.com/open-telemetry/opentelemetry-demo/src/accountingservice/genproto/oteldemo"
910

1011
"github.com/IBM/sarama"
11-
"github.com/sirupsen/logrus"
12-
"github.com/uptrace/opentelemetry-go-extra/otellogrus"
1312
"google.golang.org/protobuf/proto"
1413
)
1514

@@ -19,16 +18,7 @@ var (
1918
GroupID = "accountingservice"
2019
)
2120

22-
func initLogger() {
23-
logrus.AddHook(otellogrus.NewHook(otellogrus.WithLevels(
24-
logrus.PanicLevel,
25-
logrus.FatalLevel,
26-
logrus.ErrorLevel,
27-
logrus.WarnLevel,
28-
)))
29-
}
30-
31-
func StartConsumerGroup(ctx context.Context, brokers []string, log *logrus.Logger) (sarama.ConsumerGroup, error) {
21+
func StartConsumerGroup(ctx context.Context, brokers []string, log *slog.Logger) (sarama.ConsumerGroup, error) {
3222
saramaConfig := sarama.NewConfig()
3323
saramaConfig.Version = ProtocolVersion
3424
// So we can know the partition and offset of messages.
@@ -53,7 +43,7 @@ func StartConsumerGroup(ctx context.Context, brokers []string, log *logrus.Logge
5343
}
5444

5545
type groupHandler struct {
56-
log *logrus.Logger
46+
log *slog.Logger
5747
}
5848

5949
func (g *groupHandler) Setup(_ sarama.ConsumerGroupSession) error {
@@ -73,12 +63,7 @@ func (g *groupHandler) ConsumeClaim(session sarama.ConsumerGroupSession, claim s
7363
if err != nil {
7464
return err
7565
}
76-
77-
g.log.WithContext(session.Context()).WithFields(logrus.Fields{
78-
"orderId": orderResult.OrderId,
79-
"messageTimestamp": message.Timestamp,
80-
"messageTopic": message.Topic,
81-
}).Info("Message claimed")
66+
g.log.LogAttrs(session.Context(), slog.LevelInfo, "Message claimed", slog.String("orderId", orderResult.OrderId), slog.String("messageTimestamp", message.Timestamp.String()), slog.String("messageTopic", message.Topic))
8267
session.MarkMessage(message, "")
8368

8469
case <-session.Context().Done():

‎src/accountingservice/main.go

+15-22
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,14 @@ package main
99
import (
1010
"context"
1111
"fmt"
12+
"log/slog"
1213
"os"
1314
"os/signal"
1415
"strings"
1516
"sync"
1617
"syscall"
1718

1819
"github.com/IBM/sarama"
19-
"github.com/sirupsen/logrus"
20-
"github.com/uptrace/opentelemetry-go-extra/otellogrus"
2120
"go.opentelemetry.io/otel"
2221
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
2322
"go.opentelemetry.io/otel/propagation"
@@ -27,21 +26,14 @@ import (
2726
"github.com/open-telemetry/opentelemetry-demo/src/accountingservice/kafka"
2827
)
2928

30-
var log *logrus.Logger
3129
var resource *sdkresource.Resource
3230
var initResourcesOnce sync.Once
3331

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
4336
}
44-
4537
func initResource() *sdkresource.Resource {
4638
initResourcesOnce.Do(func() {
4739
extraResources, _ := sdkresource.New(
@@ -76,40 +68,41 @@ func initTracerProvider() (*sdktrace.TracerProvider, error) {
7668
}
7769

7870
func main() {
71+
logger := initLogger()
7972
ctx := context.Background()
8073
tp, err := initTracerProvider()
8174
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()))
8376
}
8477
defer func() {
8578
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()))
8780
}
88-
log.WithContext(ctx).WithField("Message", "Shotdown trace provider")
81+
logger.LogAttrs(ctx, slog.LevelInfo, "", slog.String("message", "Shotdown trace provider"))
8982
}()
9083

9184
var brokers string
9285
mustMapEnv(&brokers, "KAFKA_SERVICE_ADDR")
9386

9487
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, ",")))
9689

9790
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM, syscall.SIGKILL)
9891
defer cancel()
9992
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()))
10295
}
10396
defer func() {
10497
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()))
10699
}
107-
log.WithContext(ctx).WithField("Message", "Closed consumer group")
100+
logger.Log(ctx, slog.LevelInfo, "Closed consumer group")
108101
}()
109102

110103
<-ctx.Done()
111104

112-
log.WithContext(ctx).WithField("Message", "Accounting service exited")
105+
logger.Log(ctx, slog.LevelInfo, "message", "Accounting service exited")
113106
}
114107

115108
func mustMapEnv(target *string, envKey string) {

0 commit comments

Comments
 (0)
Please sign in to comment.