...
1 package kitlogadapter
2
3 import (
4 "context"
5
6 "github.com/go-kit/log"
7 kitlevel "github.com/go-kit/log/level"
8 "github.com/jackc/pgx/v4"
9 )
10
11 type Logger struct {
12 l log.Logger
13 }
14
15 func NewLogger(l log.Logger) *Logger {
16 return &Logger{l: l}
17 }
18
19 func (l *Logger) Log(ctx context.Context, level pgx.LogLevel, msg string, data map[string]interface{}) {
20 logger := l.l
21 for k, v := range data {
22 logger = log.With(logger, k, v)
23 }
24
25 switch level {
26 case pgx.LogLevelTrace:
27 logger.Log("PGX_LOG_LEVEL", level, "msg", msg)
28 case pgx.LogLevelDebug:
29 kitlevel.Debug(logger).Log("msg", msg)
30 case pgx.LogLevelInfo:
31 kitlevel.Info(logger).Log("msg", msg)
32 case pgx.LogLevelWarn:
33 kitlevel.Warn(logger).Log("msg", msg)
34 case pgx.LogLevelError:
35 kitlevel.Error(logger).Log("msg", msg)
36 default:
37 logger.Log("INVALID_PGX_LOG_LEVEL", level, "error", msg)
38 }
39 }
40
View as plain text