mirror of
https://github.com/go-kratos/kratos.git
synced 2025-03-17 21:07:54 +02:00
* feat(log): Prevent log.Helper sprintf from running early * fix(log): add benchmark helper filter level * chore(log): rename log Level Enabled
This commit is contained in:
parent
e11acb685e
commit
d4edd442bb
@ -66,6 +66,15 @@ func (h *Helper) WithContext(ctx context.Context) *Helper {
|
||||
}
|
||||
}
|
||||
|
||||
// Enabled returns true if the given level above this level.
|
||||
// It delegates to the underlying *Filter.
|
||||
func (h *Helper) Enabled(level Level) bool {
|
||||
if l, ok := h.logger.(*Filter); ok {
|
||||
return level >= l.level
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// Log Print log by level and keyvals.
|
||||
func (h *Helper) Log(level Level, keyvals ...interface{}) {
|
||||
_ = h.logger.Log(level, keyvals...)
|
||||
@ -73,11 +82,17 @@ func (h *Helper) Log(level Level, keyvals ...interface{}) {
|
||||
|
||||
// Debug logs a message at debug level.
|
||||
func (h *Helper) Debug(a ...interface{}) {
|
||||
if !h.Enabled(LevelDebug) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelDebug, h.msgKey, h.sprint(a...))
|
||||
}
|
||||
|
||||
// Debugf logs a message at debug level.
|
||||
func (h *Helper) Debugf(format string, a ...interface{}) {
|
||||
if !h.Enabled(LevelDebug) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelDebug, h.msgKey, h.sprintf(format, a...))
|
||||
}
|
||||
|
||||
@ -88,11 +103,17 @@ func (h *Helper) Debugw(keyvals ...interface{}) {
|
||||
|
||||
// Info logs a message at info level.
|
||||
func (h *Helper) Info(a ...interface{}) {
|
||||
if !h.Enabled(LevelInfo) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelInfo, h.msgKey, h.sprint(a...))
|
||||
}
|
||||
|
||||
// Infof logs a message at info level.
|
||||
func (h *Helper) Infof(format string, a ...interface{}) {
|
||||
if !h.Enabled(LevelInfo) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelInfo, h.msgKey, h.sprintf(format, a...))
|
||||
}
|
||||
|
||||
@ -103,11 +124,17 @@ func (h *Helper) Infow(keyvals ...interface{}) {
|
||||
|
||||
// Warn logs a message at warn level.
|
||||
func (h *Helper) Warn(a ...interface{}) {
|
||||
if !h.Enabled(LevelWarn) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelWarn, h.msgKey, h.sprint(a...))
|
||||
}
|
||||
|
||||
// Warnf logs a message at warnf level.
|
||||
func (h *Helper) Warnf(format string, a ...interface{}) {
|
||||
if !h.Enabled(LevelWarn) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelWarn, h.msgKey, h.sprintf(format, a...))
|
||||
}
|
||||
|
||||
@ -118,11 +145,17 @@ func (h *Helper) Warnw(keyvals ...interface{}) {
|
||||
|
||||
// Error logs a message at error level.
|
||||
func (h *Helper) Error(a ...interface{}) {
|
||||
if !h.Enabled(LevelError) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelError, h.msgKey, h.sprint(a...))
|
||||
}
|
||||
|
||||
// Errorf logs a message at error level.
|
||||
func (h *Helper) Errorf(format string, a ...interface{}) {
|
||||
if !h.Enabled(LevelError) {
|
||||
return
|
||||
}
|
||||
_ = h.logger.Log(LevelError, h.msgKey, h.sprintf(format, a...))
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,13 @@ func BenchmarkHelperPrint(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkHelperPrintFilterLevel(b *testing.B) {
|
||||
log := NewHelper(NewFilter(NewStdLogger(io.Discard), FilterLevel(LevelDebug)))
|
||||
for i := 0; i < b.N; i++ {
|
||||
log.Debug("test")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkHelperPrintf(b *testing.B) {
|
||||
log := NewHelper(NewStdLogger(io.Discard))
|
||||
for i := 0; i < b.N; i++ {
|
||||
@ -53,6 +60,13 @@ func BenchmarkHelperPrintf(b *testing.B) {
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkHelperPrintfFilterLevel(b *testing.B) {
|
||||
log := NewHelper(NewFilter(NewStdLogger(io.Discard), FilterLevel(LevelInfo)))
|
||||
for i := 0; i < b.N; i++ {
|
||||
log.Debugf("%s", "test")
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkHelperPrintw(b *testing.B) {
|
||||
log := NewHelper(NewStdLogger(io.Discard))
|
||||
for i := 0; i < b.N; i++ {
|
||||
|
Loading…
x
Reference in New Issue
Block a user