diff --git a/log/filter.go b/log/filter.go index 9b87c2c2f..537d5fc4f 100644 --- a/log/filter.go +++ b/log/filter.go @@ -57,7 +57,7 @@ func NewFilter(logger Logger, opts ...FilterOption) *Filter { return &options } -// Log Print log by level and keyvals +// Log Print log by level and keyvals. func (f *Filter) Log(level Level, keyvals ...interface{}) error { if f.level > level { return nil @@ -65,19 +65,18 @@ func (f *Filter) Log(level Level, keyvals ...interface{}) error { if f.filter != nil && f.filter(level, keyvals...) { return nil } - if len(keyvals)%2 == 0 { - for i := 0; i < len(keyvals); i += 2 { - if i > len(keyvals) { - continue - } - k := keyvals[i] - v := keyvals[i+1] - if _, ok := f.key[k]; ok { - keyvals[i+1] = "***" - } - if _, ok := f.value[v]; ok { - keyvals[i+1] = "***" - } + for i := 0; i < len(keyvals); i += 2 { + iv := i + 1 + if iv >= len(keyvals) { + continue + } + k := keyvals[i] + v := keyvals[iv] + if _, ok := f.key[k]; ok { + keyvals[i+1] = "***" + } + if _, ok := f.value[v]; ok { + keyvals[i+1] = "***" } } return f.logger.Log(level, keyvals...) diff --git a/log/value.go b/log/value.go index 762d84804..a472d77af 100644 --- a/log/value.go +++ b/log/value.go @@ -33,11 +33,11 @@ func Value(ctx context.Context, v interface{}) interface{} { func Caller(depth int) Valuer { return func(context.Context) interface{} { _, file, line, _ := runtime.Caller(depth) - if strings.LastIndex(file, "/log/helper.go") > 0 { + if strings.LastIndex(file, "/log/filter.go") > 0 { depth++ _, file, line, _ = runtime.Caller(depth) } - if strings.LastIndex(file, "/log/filter.go") > 0 { + if strings.LastIndex(file, "/log/helper.go") > 0 { depth++ _, file, line, _ = runtime.Caller(depth) }