...
1
2
3 package logrusadapter
4
5 import (
6 "context"
7
8 "github.com/jackc/pgx/v4"
9 "github.com/sirupsen/logrus"
10 )
11
12 type Logger struct {
13 l logrus.FieldLogger
14 }
15
16 func NewLogger(l logrus.FieldLogger) *Logger {
17 return &Logger{l: l}
18 }
19
20 func (l *Logger) Log(ctx context.Context, level pgx.LogLevel, msg string, data map[string]interface{}) {
21 var logger logrus.FieldLogger
22 if data != nil {
23 logger = l.l.WithFields(data)
24 } else {
25 logger = l.l
26 }
27
28 switch level {
29 case pgx.LogLevelTrace:
30 logger.WithField("PGX_LOG_LEVEL", level).Debug(msg)
31 case pgx.LogLevelDebug:
32 logger.Debug(msg)
33 case pgx.LogLevelInfo:
34 logger.Info(msg)
35 case pgx.LogLevelWarn:
36 logger.Warn(msg)
37 case pgx.LogLevelError:
38 logger.Error(msg)
39 default:
40 logger.WithField("INVALID_PGX_LOG_LEVEL", level).Error(msg)
41 }
42 }
43
View as plain text