mirror of https://github.com/jackc/pgx.git
Use interface for logging instead of log15 directly
parent
311c332fdc
commit
98109c57bb
8
conn.go
8
conn.go
|
@ -14,7 +14,6 @@ import (
|
|||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
log "gopkg.in/inconshreveable/log15.v2"
|
||||
"io"
|
||||
"net"
|
||||
"net/url"
|
||||
|
@ -34,7 +33,7 @@ type ConnConfig struct {
|
|||
User string // default: OS user name
|
||||
Password string
|
||||
TLSConfig *tls.Config // config for TLS connection -- nil disables TLS
|
||||
Logger log.Logger
|
||||
Logger Logger
|
||||
}
|
||||
|
||||
// Conn is a PostgreSQL connection handle. It is not safe for concurrent usage.
|
||||
|
@ -53,7 +52,7 @@ type Conn struct {
|
|||
notifications []*Notification
|
||||
alive bool
|
||||
causeOfDeath error
|
||||
logger log.Logger
|
||||
logger Logger
|
||||
rows Rows
|
||||
mr msgReader
|
||||
}
|
||||
|
@ -100,8 +99,7 @@ func Connect(config ConnConfig) (c *Conn, err error) {
|
|||
if c.config.Logger != nil {
|
||||
c.logger = c.config.Logger
|
||||
} else {
|
||||
c.logger = log.New()
|
||||
c.logger.SetHandler(log.DiscardHandler())
|
||||
c.logger = &DiscardLogger{}
|
||||
}
|
||||
|
||||
if c.config.User == "" {
|
||||
|
|
|
@ -2,7 +2,6 @@ package pgx
|
|||
|
||||
import (
|
||||
"errors"
|
||||
log "gopkg.in/inconshreveable/log15.v2"
|
||||
"sync"
|
||||
)
|
||||
|
||||
|
@ -19,7 +18,7 @@ type ConnPool struct {
|
|||
config ConnConfig // config used when establishing connection
|
||||
maxConnections int
|
||||
afterConnect func(*Conn) error
|
||||
logger log.Logger
|
||||
logger Logger
|
||||
}
|
||||
|
||||
type ConnPoolStat struct {
|
||||
|
@ -45,8 +44,7 @@ func NewConnPool(config ConnPoolConfig) (p *ConnPool, err error) {
|
|||
if config.Logger != nil {
|
||||
p.logger = config.Logger
|
||||
} else {
|
||||
p.logger = log.New()
|
||||
p.logger.SetHandler(log.DiscardHandler())
|
||||
p.logger = &DiscardLogger{}
|
||||
}
|
||||
|
||||
p.allConnections = make([]*Conn, 0, p.maxConnections)
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package pgx
|
||||
|
||||
// Logger is the interface used to get logging from pgx internals.
|
||||
// https://github.com/inconshreveable/log15 is the recommended logging package.
|
||||
// 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{})
|
||||
Warn(msg string, ctx ...interface{})
|
||||
Error(msg string, ctx ...interface{})
|
||||
Crit(msg string, ctx ...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{}) {}
|
Loading…
Reference in New Issue