Migrating to unified logger interface
This commit is contained in:
parent
7756ae11cf
commit
399ad0a796
|
@ -0,0 +1 @@
|
||||||
|
tags
|
3
go.mod
3
go.mod
|
@ -3,10 +3,11 @@ module git.bit5.ru/backend/rdb
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
git.bit5.ru/backend/colog v1.0.0
|
|
||||||
git.bit5.ru/backend/redigo v1.0.1
|
git.bit5.ru/backend/redigo v1.0.1
|
||||||
git.bit5.ru/backend/redsync v1.0.1
|
git.bit5.ru/backend/redsync v1.0.1
|
||||||
git.bit5.ru/backend/res_tracker v1.0.0
|
git.bit5.ru/backend/res_tracker v1.0.0
|
||||||
|
github.com/go-logr/logr v1.2.3
|
||||||
|
github.com/go-logr/stdr v1.2.2
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify v1.7.0
|
||||||
)
|
)
|
||||||
|
|
7
go.sum
7
go.sum
|
@ -1,5 +1,3 @@
|
||||||
git.bit5.ru/backend/colog v1.0.0 h1:FLykTQuRfnhWYQ+dZhoaOfkxjHNEfWp4AwP/KD+ob+M=
|
|
||||||
git.bit5.ru/backend/colog v1.0.0/go.mod h1:fiOrMQ7SPBD5Pn/Tb7rG1phsDQbZaA7S0vtdnlM6BK4=
|
|
||||||
git.bit5.ru/backend/redigo v1.0.1 h1:1LyyjHWfeed+0LEjMYqFnTuyr5ri2f+UDCV3vdAMh4Q=
|
git.bit5.ru/backend/redigo v1.0.1 h1:1LyyjHWfeed+0LEjMYqFnTuyr5ri2f+UDCV3vdAMh4Q=
|
||||||
git.bit5.ru/backend/redigo v1.0.1/go.mod h1:nGfr55wovFNsbAleS5hMmtD/X3X5FZ52HJdbRses5WA=
|
git.bit5.ru/backend/redigo v1.0.1/go.mod h1:nGfr55wovFNsbAleS5hMmtD/X3X5FZ52HJdbRses5WA=
|
||||||
git.bit5.ru/backend/redsync v1.0.1 h1:NcXwMw36riODqi6sMyvRCFVpIfRY63oNIGJ2szdaLoI=
|
git.bit5.ru/backend/redsync v1.0.1 h1:NcXwMw36riODqi6sMyvRCFVpIfRY63oNIGJ2szdaLoI=
|
||||||
|
@ -8,6 +6,11 @@ git.bit5.ru/backend/res_tracker v1.0.0 h1:0FWwzP3yGOe9L39VuH9LIqyQABo/P+rd3kA112
|
||||||
git.bit5.ru/backend/res_tracker v1.0.0/go.mod h1:ffjnItxqkGc6rxOK9XgrQDirGhmIBwoqibmyLJ4TZtQ=
|
git.bit5.ru/backend/res_tracker v1.0.0/go.mod h1:ffjnItxqkGc6rxOK9XgrQDirGhmIBwoqibmyLJ4TZtQ=
|
||||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
|
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
|
||||||
|
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
|
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
|
||||||
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
|
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
|
||||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||||
|
|
19
rdb.go
19
rdb.go
|
@ -6,11 +6,11 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.bit5.ru/backend/colog"
|
|
||||||
"git.bit5.ru/backend/redigo/redis"
|
"git.bit5.ru/backend/redigo/redis"
|
||||||
"git.bit5.ru/backend/redsync"
|
"git.bit5.ru/backend/redsync"
|
||||||
"git.bit5.ru/backend/res_tracker"
|
"git.bit5.ru/backend/res_tracker"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ type Pool struct {
|
||||||
RP *redis.Pool
|
RP *redis.Pool
|
||||||
}
|
}
|
||||||
|
|
||||||
func OpenPool(s RdSettings, logger *colog.CoLog) *Pool {
|
func OpenPool(s RdSettings, logger logr.Logger) *Pool {
|
||||||
p := &Pool{S: s, RP: newRedisPool(s, logger)}
|
p := &Pool{S: s, RP: newRedisPool(s, logger)}
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ func (p *Pool) Do(cmd string, args ...interface{}) (interface{}, error) {
|
||||||
type rdb struct {
|
type rdb struct {
|
||||||
orig redis.Conn
|
orig redis.Conn
|
||||||
name string
|
name string
|
||||||
logger *colog.CoLog
|
logger logr.Logger
|
||||||
s RdSettings
|
s RdSettings
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ func (rd *rdb) Do(command string, args ...interface{}) (interface{}, error) {
|
||||||
for i := 0; i < len(args); i++ {
|
for i := 0; i < len(args); i++ {
|
||||||
s += fmt.Sprintf("%v ", args[i])
|
s += fmt.Sprintf("%v ", args[i])
|
||||||
}
|
}
|
||||||
rd.logger.Output(colog.LDebug, 5, fmt.Sprintf("%s %s", command, s))
|
rd.logger.WithCallDepth(2).V(1).Info(command + " " + s)
|
||||||
}
|
}
|
||||||
} else if rd.s.LogLevel > 0 {
|
} else if rd.s.LogLevel > 0 {
|
||||||
//for this level not logging too verbose commands
|
//for this level not logging too verbose commands
|
||||||
|
@ -105,7 +105,7 @@ func (rd *rdb) Do(command string, args ...interface{}) (interface{}, error) {
|
||||||
if len(args) > 5 {
|
if len(args) > 5 {
|
||||||
s += " ..."
|
s += " ..."
|
||||||
}
|
}
|
||||||
rd.logger.Output(colog.LDebug, 5, fmt.Sprintf("%s %s", command, s))
|
rd.logger.WithCallDepth(2).V(1).Info(command + " " + s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rd.orig.Do(command, args...)
|
return rd.orig.Do(command, args...)
|
||||||
|
@ -118,7 +118,7 @@ func (rd *rdb) Send(command string, args ...interface{}) error {
|
||||||
for i := 0; i < len(args); i++ {
|
for i := 0; i < len(args); i++ {
|
||||||
s += fmt.Sprintf("%v ", args[i])
|
s += fmt.Sprintf("%v ", args[i])
|
||||||
}
|
}
|
||||||
rd.logger.Output(colog.LDebug, 5, fmt.Sprintf("%s %s", command, s))
|
rd.logger.WithCallDepth(2).V(1).Info(command + " " + s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return rd.orig.Send(command, args...)
|
return rd.orig.Send(command, args...)
|
||||||
|
@ -128,7 +128,7 @@ func (rd *rdb) Receive() (interface{}, error) {
|
||||||
return rd.orig.Receive()
|
return rd.orig.Receive()
|
||||||
}
|
}
|
||||||
|
|
||||||
func newRedisPool(s RdSettings, logger *colog.CoLog) *redis.Pool {
|
func newRedisPool(s RdSettings, logger logr.Logger) *redis.Pool {
|
||||||
|
|
||||||
maxIdle := s.MaxIdle
|
maxIdle := s.MaxIdle
|
||||||
if maxIdle == 0 {
|
if maxIdle == 0 {
|
||||||
|
@ -149,10 +149,13 @@ func newRedisPool(s RdSettings, logger *colog.CoLog) *redis.Pool {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.WithStack(err)
|
return nil, errors.WithStack(err)
|
||||||
}
|
}
|
||||||
|
if len(s.Prefix) > 0 {
|
||||||
|
logger = logger.WithValues("rd_prefix", s.Prefix)
|
||||||
|
}
|
||||||
c := &rdb{
|
c := &rdb{
|
||||||
orig: orig,
|
orig: orig,
|
||||||
name: s.Prefix,
|
name: s.Prefix,
|
||||||
logger: logger.Clone().AddPrefix("[" + s.Prefix + "] "),
|
logger: logger,
|
||||||
s: s,
|
s: s,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
20
rdb_test.go
20
rdb_test.go
|
@ -1,25 +1,29 @@
|
||||||
package rdb_test
|
package rdb_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.bit5.ru/backend/colog"
|
|
||||||
"git.bit5.ru/backend/rdb"
|
"git.bit5.ru/backend/rdb"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr"
|
||||||
|
"github.com/go-logr/stdr"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const verbosity = 0
|
||||||
|
|
||||||
func getPool() *rdb.Pool {
|
func getPool() *rdb.Pool {
|
||||||
pool := rdb.OpenPool(rdb.RdSettings{Host: "localhost", Port: 6379, Db: 10, ClientName: "test"}, getLogger())
|
//TODO: use ENV settings as well
|
||||||
|
pool := rdb.OpenPool(rdb.RdSettings{Host: "localhost", Port: 6379, Db: 10, ClientName: "test", LogLevel: verbosity}, getLogger())
|
||||||
return pool
|
return pool
|
||||||
}
|
}
|
||||||
|
|
||||||
func getLogger() *colog.CoLog {
|
func getLogger() logr.Logger {
|
||||||
tlog := colog.NewCoLog(os.Stderr, "", 0)
|
//TODO: use ENV settings as well
|
||||||
ft := &colog.StdFormatter{Flag: 0}
|
stdr.SetVerbosity(verbosity)
|
||||||
ft.ColorSupported(true)
|
return stdr.New(log.New(os.Stdout, "", log.Lshortfile))
|
||||||
tlog.SetFormatter(ft)
|
|
||||||
return tlog
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBadConnection(t *testing.T) {
|
func TestBadConnection(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue