mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-17 21:07:54 +02:00
add log verbose (#772)
This commit is contained in:
parent
5a8acec808
commit
0b93bef031
30
log/verbose.go
Normal file
30
log/verbose.go
Normal file
@ -0,0 +1,30 @@
|
||||
package log
|
||||
|
||||
// Verbose is a verbose type that implements Logger Print.
|
||||
type Verbose struct {
|
||||
log Logger
|
||||
level Level
|
||||
enabled bool
|
||||
}
|
||||
|
||||
// NewVerbose new a verbose with level.
|
||||
func NewVerbose(log Logger, level Level) Verbose {
|
||||
return Verbose{log: log, level: level}
|
||||
}
|
||||
|
||||
// Enabled will return true if this log level is enabled, guarded by the value of v.
|
||||
func (v Verbose) Enabled(level Level) bool {
|
||||
return v.level <= level
|
||||
}
|
||||
|
||||
// V reports whether verbosity at the call site is at least the requested level.
|
||||
func (v Verbose) V(level Level) Verbose {
|
||||
return Verbose{log: v.log, enabled: v.Enabled(level)}
|
||||
}
|
||||
|
||||
// Print is equivalent to the Print function, guarded by the value of v.
|
||||
func (v Verbose) Print(a ...interface{}) {
|
||||
if v.enabled {
|
||||
v.log.Print(a...)
|
||||
}
|
||||
}
|
11
log/verbose_test.go
Normal file
11
log/verbose_test.go
Normal file
@ -0,0 +1,11 @@
|
||||
package log
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestVerbose(t *testing.T) {
|
||||
v := NewVerbose(DefaultLogger, 20)
|
||||
|
||||
v.V(10).Print("foo", "bar1")
|
||||
v.V(20).Print("foo", "bar2")
|
||||
v.V(30).Print("foo", "bar3")
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user