summaryrefslogtreecommitdiff
path: root/vendor/k8s.io/klog/v2/klog.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/k8s.io/klog/v2/klog.go')
-rw-r--r--vendor/k8s.io/klog/v2/klog.go52
1 files changed, 33 insertions, 19 deletions
diff --git a/vendor/k8s.io/klog/v2/klog.go b/vendor/k8s.io/klog/v2/klog.go
index 23cced625..25483fad1 100644
--- a/vendor/k8s.io/klog/v2/klog.go
+++ b/vendor/k8s.io/klog/v2/klog.go
@@ -81,6 +81,7 @@ import (
"math"
"os"
"path/filepath"
+ "reflect"
"runtime"
"strconv"
"strings"
@@ -433,7 +434,7 @@ func InitFlags(flagset *flag.FlagSet) {
flagset.Var(&logging.verbosity, "v", "number for the log level verbosity")
flagset.BoolVar(&logging.addDirHeader, "add_dir_header", logging.addDirHeader, "If true, adds the file directory to the header of the log messages")
flagset.BoolVar(&logging.skipHeaders, "skip_headers", logging.skipHeaders, "If true, avoid header prefixes in the log messages")
- flagset.BoolVar(&logging.oneOutput, "one_output", logging.oneOutput, "If true, only write logs to their native severity level (vs also writing to each lower severity level")
+ flagset.BoolVar(&logging.oneOutput, "one_output", logging.oneOutput, "If true, only write logs to their native severity level (vs also writing to each lower severity level)")
flagset.BoolVar(&logging.skipLogHeaders, "skip_log_headers", logging.skipLogHeaders, "If true, avoid headers when opening log files")
flagset.Var(&logging.stderrThreshold, "stderrthreshold", "logs at or above this threshold go to stderr")
flagset.Var(&logging.vmodule, "vmodule", "comma-separated list of pattern=N settings for file-filtered logging")
@@ -772,7 +773,7 @@ func (l *loggingT) printWithFileLine(s severity, logr logr.Logger, filter LogFil
}
// if loggr is specified, will call loggr.Error, otherwise output with logging module.
-func (l *loggingT) errorS(err error, loggr logr.Logger, filter LogFilter, msg string, keysAndValues ...interface{}) {
+func (l *loggingT) errorS(err error, loggr logr.Logger, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
if filter != nil {
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
}
@@ -780,11 +781,11 @@ func (l *loggingT) errorS(err error, loggr logr.Logger, filter LogFilter, msg st
loggr.Error(err, msg, keysAndValues...)
return
}
- l.printS(err, msg, keysAndValues...)
+ l.printS(err, errorLog, depth+1, msg, keysAndValues...)
}
// if loggr is specified, will call loggr.Info, otherwise output with logging module.
-func (l *loggingT) infoS(loggr logr.Logger, filter LogFilter, msg string, keysAndValues ...interface{}) {
+func (l *loggingT) infoS(loggr logr.Logger, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
if filter != nil {
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
}
@@ -792,12 +793,12 @@ func (l *loggingT) infoS(loggr logr.Logger, filter LogFilter, msg string, keysAn
loggr.Info(msg, keysAndValues...)
return
}
- l.printS(nil, msg, keysAndValues...)
+ l.printS(nil, infoLog, depth+1, msg, keysAndValues...)
}
// printS is called from infoS and errorS if loggr is not specified.
-// if err arguments is specified, will output to errorLog severity
-func (l *loggingT) printS(err error, msg string, keysAndValues ...interface{}) {
+// set log severity by s
+func (l *loggingT) printS(err error, s severity, depth int, msg string, keysAndValues ...interface{}) {
b := &bytes.Buffer{}
b.WriteString(fmt.Sprintf("%q", msg))
if err != nil {
@@ -805,13 +806,7 @@ func (l *loggingT) printS(err error, msg string, keysAndValues ...interface{}) {
b.WriteString(fmt.Sprintf("err=%q", err.Error()))
}
kvListFormat(b, keysAndValues...)
- var s severity
- if err == nil {
- s = infoLog
- } else {
- s = errorLog
- }
- l.printDepth(s, logging.logr, nil, 2, b)
+ l.printDepth(s, logging.logr, nil, depth+1, b)
}
const missingValue = "(MISSING)"
@@ -1359,14 +1354,20 @@ func (v Verbose) Infof(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, msg, keysAndValues...)
+ logging.infoS(v.logr, v.filter, 0, msg, keysAndValues...)
}
}
+// InfoSDepth acts as InfoS but uses depth to determine which call frame to log.
+// InfoSDepth(0, "msg") is the same as InfoS("msg").
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {
+ logging.infoS(logging.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, msg, args...)
+ logging.errorS(err, v.logr, v.filter, 0, msg, args...)
}
}
@@ -1374,7 +1375,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, msg, keysAndValues...)
+ logging.errorS(err, v.logr, v.filter, 0, msg, keysAndValues...)
}
}
@@ -1411,7 +1412,7 @@ func Infof(format string, args ...interface{}) {
// output:
// >> I1025 00:15:15.525108 1 controller_utils.go:116] "Pod status updated" pod="kubedns" status="ready"
func InfoS(msg string, keysAndValues ...interface{}) {
- logging.infoS(logging.logr, logging.filter, msg, keysAndValues...)
+ logging.infoS(logging.logr, logging.filter, 0, msg, keysAndValues...)
}
// Warning logs to the WARNING and INFO logs.
@@ -1472,7 +1473,13 @@ func Errorf(format string, args ...interface{}) {
// output:
// >> E1025 00:15:15.525108 1 controller_utils.go:114] "Failed to update pod status" err="timeout"
func ErrorS(err error, msg string, keysAndValues ...interface{}) {
- logging.errorS(err, logging.logr, logging.filter, msg, keysAndValues...)
+ logging.errorS(err, logging.logr, logging.filter, 0, msg, keysAndValues...)
+}
+
+// ErrorSDepth acts as ErrorS but uses depth to determine which call frame to log.
+// ErrorSDepth(0, "msg") is the same as ErrorS("msg").
+func ErrorSDepth(depth int, err error, msg string, keysAndValues ...interface{}) {
+ logging.errorS(err, logging.logr, logging.filter, depth, msg, keysAndValues...)
}
// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,
@@ -1571,6 +1578,13 @@ type KMetadata interface {
// KObj returns ObjectRef from ObjectMeta
func KObj(obj KMetadata) ObjectRef {
+ if obj == nil {
+ return ObjectRef{}
+ }
+ if val := reflect.ValueOf(obj); val.Kind() == reflect.Ptr && val.IsNil() {
+ return ObjectRef{}
+ }
+
return ObjectRef{
Name: obj.GetName(),
Namespace: obj.GetNamespace(),