Feat: introduce google.golang.org/grpc/grpclog.LoggerV2
compatibility
This commit is contained in:
parent
54125e2e31
commit
dd9ca58d52
39
compat.go
Normal file
39
compat.go
Normal file
@ -0,0 +1,39 @@
|
||||
package zwrap
|
||||
|
||||
// StdCompatLogger is an interface that provides compatibility with the standard library's log.Logger.
|
||||
type StdCompatLogger interface {
|
||||
Fatal(v ...interface{})
|
||||
Fatalf(format string, v ...interface{})
|
||||
Fatalln(v ...interface{})
|
||||
Panic(v ...interface{})
|
||||
Panicf(format string, v ...interface{})
|
||||
Panicln(v ...interface{})
|
||||
Prefix() string
|
||||
Print(v ...interface{})
|
||||
Printf(format string, v ...interface{})
|
||||
Println(v ...interface{})
|
||||
SetPrefix(prefix string)
|
||||
Output(calldepth int, s string) error
|
||||
}
|
||||
|
||||
type GRPCCompatLogger interface {
|
||||
Info(args ...any)
|
||||
Infoln(args ...any)
|
||||
Infof(format string, args ...any)
|
||||
Warning(args ...any)
|
||||
Warningln(args ...any)
|
||||
Warningf(format string, args ...any)
|
||||
Error(args ...any)
|
||||
Errorln(args ...any)
|
||||
Errorf(format string, args ...any)
|
||||
Fatal(args ...any)
|
||||
Fatalln(args ...any)
|
||||
Fatalf(format string, args ...any)
|
||||
V(l int) bool
|
||||
}
|
||||
|
||||
// assert that Logger implements StdCompatLogger and GRPCCompatLogger.
|
||||
var (
|
||||
_ StdCompatLogger = &Logger{}
|
||||
_ GRPCCompatLogger = &Logger{}
|
||||
)
|
8
go.mod
8
go.mod
@ -1,5 +1,11 @@
|
||||
module git.tcp.direct/kayos/zwrap
|
||||
|
||||
go 1.14
|
||||
go 1.18
|
||||
|
||||
require github.com/rs/zerolog v1.30.0
|
||||
|
||||
require (
|
||||
github.com/mattn/go-colorable v0.1.12 // indirect
|
||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
)
|
||||
|
3
go.sum
3
go.sum
@ -9,5 +9,6 @@ github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
|
||||
github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c=
|
||||
github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
|
12
util.go
Normal file
12
util.go
Normal file
@ -0,0 +1,12 @@
|
||||
package zwrap
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var strBufs = &sync.Pool{
|
||||
New: func() interface{} {
|
||||
return new(strings.Builder)
|
||||
},
|
||||
}
|
47
wrap.go
47
wrap.go
@ -5,41 +5,12 @@ package zwrap
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
var strBufs = &sync.Pool{
|
||||
New: func() interface{} {
|
||||
return new(strings.Builder)
|
||||
},
|
||||
}
|
||||
|
||||
// StdCompatLogger is an interface that provides compatibility with the standard library's log.Logger.
|
||||
type StdCompatLogger interface {
|
||||
Fatal(v ...interface{})
|
||||
Fatalf(format string, v ...interface{})
|
||||
Fatalln(v ...interface{})
|
||||
Panic(v ...interface{})
|
||||
Panicf(format string, v ...interface{})
|
||||
Panicln(v ...interface{})
|
||||
Prefix() string
|
||||
Print(v ...interface{})
|
||||
Printf(format string, v ...interface{})
|
||||
Println(v ...interface{})
|
||||
SetPrefix(prefix string)
|
||||
Output(calldepth int, s string) error
|
||||
}
|
||||
|
||||
// assert that Logger implements StdCompatLogger and that log.Logger implements StdCompatLogger
|
||||
var _ StdCompatLogger = &Logger{}
|
||||
var _ StdCompatLogger = &log.Logger{}
|
||||
|
||||
// ----------------------------------------------------
|
||||
|
||||
type Logger struct {
|
||||
*zerolog.Logger
|
||||
*sync.RWMutex
|
||||
@ -48,6 +19,24 @@ type Logger struct {
|
||||
printLevel zerolog.Level
|
||||
}
|
||||
|
||||
func (l *Logger) Warning(args ...any) {
|
||||
l.Logger.Warn().Msg(fmt.Sprint(args...))
|
||||
}
|
||||
|
||||
func (l *Logger) Warningln(args ...any) {
|
||||
l.Logger.Warn().Msg(fmt.Sprintln(args...))
|
||||
}
|
||||
|
||||
func (l *Logger) V(level int) bool {
|
||||
if level > 127 || level < 0 {
|
||||
return false
|
||||
}
|
||||
if l.Logger.GetLevel() > zerolog.Level(int8(level)) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (l *Logger) SetPrefix(prefix string) {
|
||||
l.Lock()
|
||||
l.prefix = prefix
|
||||
|
@ -80,6 +80,12 @@ func TestWrap(t *testing.T) {
|
||||
wrapped.Trace(v...)
|
||||
wrapped.Traceln(v...)
|
||||
wrapped.Logf("%v", v)
|
||||
wrapped.Warning("%v", v)
|
||||
wrapped.Warningf("%v", v)
|
||||
}
|
||||
|
||||
if wrapped.V(0) {
|
||||
t.Error("V(0) should always return false")
|
||||
}
|
||||
|
||||
t.Run("generic", func(t *testing.T) {
|
||||
|
Loading…
Reference in New Issue
Block a user