From 150f752acd97e6832acd7ef25196766c51e93da8 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Tue, 8 Feb 2022 15:34:14 +0100 Subject: [PATCH] log filter: ignored by V, used during log call It's not entirely clear why the filter was copied into Verbose. The only semantic difference is when Verbose get stored and then the filter gets modified: klogV := klog.V(5) klog.SetLogFilter(...) klogV.Info(...) This seems like a very unlikely code pattern and goes against the intention of first initializing logging, then using it. Therefore we can undo the size increase in Verbose and only retrieve the filter when it is needed. --- klog.go | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/klog.go b/klog.go index 4c5503fdf..7cf60f9ee 100644 --- a/klog.go +++ b/klog.go @@ -1395,15 +1395,14 @@ func (l *loggingT) setV(pc uintptr) Level { type Verbose struct { enabled bool logr *logr.Logger - filter LogFilter } func newVerbose(level Level, b bool) Verbose { if logging.logr == nil { - return Verbose{b, nil, logging.filter} + return Verbose{b, nil} } v := logging.logr.V(int(level)) - return Verbose{b, &v, logging.filter} + return Verbose{b, &v} } // V reports whether verbosity at the call site is at least the requested level. @@ -1466,7 +1465,7 @@ func (v Verbose) Enabled() bool { // See the documentation of V for usage. func (v Verbose) Info(args ...interface{}) { if v.enabled { - logging.print(infoLog, v.logr, v.filter, args...) + logging.print(infoLog, v.logr, logging.filter, args...) } } @@ -1474,7 +1473,7 @@ func (v Verbose) Info(args ...interface{}) { // See the documentation of V for usage. func (v Verbose) InfoDepth(depth int, args ...interface{}) { if v.enabled { - logging.printDepth(infoLog, v.logr, v.filter, depth, args...) + logging.printDepth(infoLog, v.logr, logging.filter, depth, args...) } } @@ -1482,7 +1481,7 @@ func (v Verbose) InfoDepth(depth int, args ...interface{}) { // See the documentation of V for usage. func (v Verbose) Infoln(args ...interface{}) { if v.enabled { - logging.println(infoLog, v.logr, v.filter, args...) + logging.println(infoLog, v.logr, logging.filter, args...) } } @@ -1490,7 +1489,7 @@ func (v Verbose) Infoln(args ...interface{}) { // See the documentation of V for usage. func (v Verbose) InfolnDepth(depth int, args ...interface{}) { if v.enabled { - logging.printlnDepth(infoLog, v.logr, v.filter, depth, args...) + logging.printlnDepth(infoLog, v.logr, logging.filter, depth, args...) } } @@ -1498,7 +1497,7 @@ func (v Verbose) InfolnDepth(depth int, args ...interface{}) { // See the documentation of V for usage. func (v Verbose) Infof(format string, args ...interface{}) { if v.enabled { - logging.printf(infoLog, v.logr, v.filter, format, args...) + logging.printf(infoLog, v.logr, logging.filter, format, args...) } } @@ -1506,7 +1505,7 @@ func (v Verbose) Infof(format string, args ...interface{}) { // See the documentation of V for usage. func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) { if v.enabled { - logging.printfDepth(infoLog, v.logr, v.filter, depth, format, args...) + logging.printfDepth(infoLog, v.logr, logging.filter, depth, format, args...) } } @@ -1514,7 +1513,7 @@ func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) { // See the documentation of V for usage. func (v Verbose) InfoS(msg string, keysAndValues ...interface{}) { if v.enabled { - logging.infoS(v.logr, v.filter, 0, msg, keysAndValues...) + logging.infoS(v.logr, logging.filter, 0, msg, keysAndValues...) } } @@ -1528,14 +1527,14 @@ func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) { // See the documentation of V for usage. func (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) { if v.enabled { - logging.infoS(v.logr, v.filter, depth, msg, keysAndValues...) + logging.infoS(v.logr, logging.filter, depth, msg, keysAndValues...) } } // Deprecated: Use ErrorS instead. func (v Verbose) Error(err error, msg string, args ...interface{}) { if v.enabled { - logging.errorS(err, v.logr, v.filter, 0, msg, args...) + logging.errorS(err, v.logr, logging.filter, 0, msg, args...) } } @@ -1543,7 +1542,7 @@ func (v Verbose) Error(err error, msg string, args ...interface{}) { // See the documentation of V for usage. func (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) { if v.enabled { - logging.errorS(err, v.logr, v.filter, 0, msg, keysAndValues...) + logging.errorS(err, v.logr, logging.filter, 0, msg, keysAndValues...) } }