diff --git a/conn.go b/conn.go index 7f5d7f22..22f26fae 100644 --- a/conn.go +++ b/conn.go @@ -188,7 +188,7 @@ func Connect(config ConnConfig) (c *Conn, err error) { } case readyForQuery: c.rxReadyForQuery(r) - c.logger = c.logger.New("pid", c.Pid) + c.logger = &connLogger{logger: c.logger, pid: c.Pid} c.logger.Info("Connection established") return c, nil default: diff --git a/logger.go b/logger.go index 610a5625..773f25c2 100644 --- a/logger.go +++ b/logger.go @@ -5,9 +5,6 @@ package pgx // This logging interface was extracted from there. However, it should be simple // to adapt any logger to this interface. type Logger interface { - // New returns a new Logger that has this logger's context plus the given context - New(ctx ...interface{}) Logger - // Log a message at the given level with context key/value pairs Debug(msg string, ctx ...interface{}) Info(msg string, ctx ...interface{}) @@ -18,9 +15,38 @@ type Logger interface { type DiscardLogger struct{} -func (l *DiscardLogger) New(ctx ...interface{}) Logger { return l } func (l *DiscardLogger) Debug(msg string, ctx ...interface{}) {} func (l *DiscardLogger) Info(msg string, ctx ...interface{}) {} func (l *DiscardLogger) Warn(msg string, ctx ...interface{}) {} func (l *DiscardLogger) Error(msg string, ctx ...interface{}) {} func (l *DiscardLogger) Crit(msg string, ctx ...interface{}) {} + +type connLogger struct { + logger Logger + pid int32 +} + +func (l *connLogger) Debug(msg string, ctx ...interface{}) { + ctx = append(ctx, "pid", l.pid) + l.logger.Debug(msg, ctx...) +} + +func (l *connLogger) Info(msg string, ctx ...interface{}) { + ctx = append(ctx, "pid", l.pid) + l.logger.Info(msg, ctx...) +} + +func (l *connLogger) Warn(msg string, ctx ...interface{}) { + ctx = append(ctx, "pid", l.pid) + l.logger.Warn(msg, ctx...) +} + +func (l *connLogger) Error(msg string, ctx ...interface{}) { + ctx = append(ctx, "pid", l.pid) + l.logger.Error(msg, ctx...) +} + +func (l *connLogger) Crit(msg string, ctx ...interface{}) { + ctx = append(ctx, "pid", l.pid) + l.logger.Crit(msg, ctx...) +} diff --git a/query.go b/query.go index d19e44de..2237ed1b 100644 --- a/query.go +++ b/query.go @@ -3,7 +3,6 @@ package pgx import ( "errors" "fmt" - log "gopkg.in/inconshreveable/log15.v2" "time" ) @@ -50,7 +49,7 @@ type Rows struct { startTime time.Time sql string args []interface{} - logger log.Logger + logger Logger } func (rows *Rows) FieldDescriptions() []FieldDescription {