mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 11:00:25 +00:00
rebase: bump k8s.io/klog/v2 from 2.90.0 to 2.100.1
Bumps [k8s.io/klog/v2](https://github.com/kubernetes/klog) from 2.90.0 to 2.100.1. - [Release notes](https://github.com/kubernetes/klog/releases) - [Changelog](https://github.com/kubernetes/klog/blob/main/RELEASE.md) - [Commits](https://github.com/kubernetes/klog/compare/v2.90.0...v2.100.1) --- updated-dependencies: - dependency-name: k8s.io/klog/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
parent
7740cd5c36
commit
f4f6b7ae60
2
go.mod
2
go.mod
@ -39,7 +39,7 @@ require (
|
|||||||
k8s.io/apimachinery v0.26.3
|
k8s.io/apimachinery v0.26.3
|
||||||
k8s.io/client-go v12.0.0+incompatible
|
k8s.io/client-go v12.0.0+incompatible
|
||||||
k8s.io/cloud-provider v0.26.2
|
k8s.io/cloud-provider v0.26.2
|
||||||
k8s.io/klog/v2 v2.90.0
|
k8s.io/klog/v2 v2.100.1
|
||||||
k8s.io/kubernetes v1.26.2
|
k8s.io/kubernetes v1.26.2
|
||||||
k8s.io/mount-utils v0.26.2
|
k8s.io/mount-utils v0.26.2
|
||||||
k8s.io/pod-security-admission v0.0.0
|
k8s.io/pod-security-admission v0.0.0
|
||||||
|
4
go.sum
4
go.sum
@ -1798,8 +1798,8 @@ k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
|||||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||||
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||||
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||||
k8s.io/klog/v2 v2.90.0 h1:VkTxIV/FjRXn1fgNNcKGM8cfmL1Z33ZjXRTVxKCoF5M=
|
k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg=
|
||||||
k8s.io/klog/v2 v2.90.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
|
||||||
k8s.io/kms v0.26.2/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
|
k8s.io/kms v0.26.2/go.mod h1:69qGnf1NsFOQP07fBYqNLZklqEHSJF024JqYCaeVxHg=
|
||||||
k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
|
k8s.io/kube-openapi v0.0.0-20180731170545-e3762e86a74c/go.mod h1:BXM9ceUBTj2QnfH2MK1odQs778ajze1RxcmP6S8RVVc=
|
||||||
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
|
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
|
||||||
|
30
vendor/k8s.io/klog/v2/contextual.go
generated
vendored
30
vendor/k8s.io/klog/v2/contextual.go
generated
vendored
@ -70,11 +70,14 @@ func SetLogger(logger logr.Logger) {
|
|||||||
// routing log entries through klogr into klog and then into the actual Logger
|
// routing log entries through klogr into klog and then into the actual Logger
|
||||||
// backend.
|
// backend.
|
||||||
func SetLoggerWithOptions(logger logr.Logger, opts ...LoggerOption) {
|
func SetLoggerWithOptions(logger logr.Logger, opts ...LoggerOption) {
|
||||||
logging.logger = &logger
|
|
||||||
logging.loggerOptions = loggerOptions{}
|
logging.loggerOptions = loggerOptions{}
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
opt(&logging.loggerOptions)
|
opt(&logging.loggerOptions)
|
||||||
}
|
}
|
||||||
|
logging.logger = &logWriter{
|
||||||
|
Logger: logger,
|
||||||
|
writeKlogBuffer: logging.loggerOptions.writeKlogBuffer,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ContextualLogger determines whether the logger passed to
|
// ContextualLogger determines whether the logger passed to
|
||||||
@ -93,6 +96,22 @@ func FlushLogger(flush func()) LoggerOption {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WriteKlogBuffer sets a callback that will be invoked by klog to write output
|
||||||
|
// produced by non-structured log calls like Infof.
|
||||||
|
//
|
||||||
|
// The buffer will contain exactly the same data that klog normally would write
|
||||||
|
// into its own output stream(s). In particular this includes the header, if
|
||||||
|
// klog is configured to write one. The callback then can divert that data into
|
||||||
|
// its own output streams. The buffer may or may not end in a line break.
|
||||||
|
//
|
||||||
|
// Without such a callback, klog will call the logger's Info or Error method
|
||||||
|
// with just the message string (i.e. no header).
|
||||||
|
func WriteKlogBuffer(write func([]byte)) LoggerOption {
|
||||||
|
return func(o *loggerOptions) {
|
||||||
|
o.writeKlogBuffer = write
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// LoggerOption implements the functional parameter paradigm for
|
// LoggerOption implements the functional parameter paradigm for
|
||||||
// SetLoggerWithOptions.
|
// SetLoggerWithOptions.
|
||||||
type LoggerOption func(o *loggerOptions)
|
type LoggerOption func(o *loggerOptions)
|
||||||
@ -100,6 +119,13 @@ type LoggerOption func(o *loggerOptions)
|
|||||||
type loggerOptions struct {
|
type loggerOptions struct {
|
||||||
contextualLogger bool
|
contextualLogger bool
|
||||||
flush func()
|
flush func()
|
||||||
|
writeKlogBuffer func([]byte)
|
||||||
|
}
|
||||||
|
|
||||||
|
// logWriter combines a logger (always set) with a write callback (optional).
|
||||||
|
type logWriter struct {
|
||||||
|
Logger
|
||||||
|
writeKlogBuffer func([]byte)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClearLogger removes a backing Logger implementation if one was set earlier
|
// ClearLogger removes a backing Logger implementation if one was set earlier
|
||||||
@ -152,7 +178,7 @@ func Background() Logger {
|
|||||||
if logging.loggerOptions.contextualLogger {
|
if logging.loggerOptions.contextualLogger {
|
||||||
// Is non-nil because logging.loggerOptions.contextualLogger is
|
// Is non-nil because logging.loggerOptions.contextualLogger is
|
||||||
// only true if a logger was set.
|
// only true if a logger was set.
|
||||||
return *logging.logger
|
return logging.logger.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
return klogLogger
|
return klogLogger
|
||||||
|
65
vendor/k8s.io/klog/v2/format.go
generated
vendored
Normal file
65
vendor/k8s.io/klog/v2/format.go
generated
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2023 The Kubernetes Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package klog
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Format wraps a value of an arbitrary type and implement fmt.Stringer and
|
||||||
|
// logr.Marshaler for them. Stringer returns pretty-printed JSON. MarshalLog
|
||||||
|
// returns the original value with a type that has no special methods, in
|
||||||
|
// particular no MarshalLog or MarshalJSON.
|
||||||
|
//
|
||||||
|
// Wrapping values like that is useful when the value has a broken
|
||||||
|
// implementation of these special functions (for example, a type which
|
||||||
|
// inherits String from TypeMeta, but then doesn't re-implement String) or the
|
||||||
|
// implementation produces output that is less readable or unstructured (for
|
||||||
|
// example, the generated String functions for Kubernetes API types).
|
||||||
|
func Format(obj interface{}) interface{} {
|
||||||
|
return formatAny{Object: obj}
|
||||||
|
}
|
||||||
|
|
||||||
|
type formatAny struct {
|
||||||
|
Object interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f formatAny) String() string {
|
||||||
|
var buffer strings.Builder
|
||||||
|
encoder := json.NewEncoder(&buffer)
|
||||||
|
encoder.SetIndent("", " ")
|
||||||
|
if err := encoder.Encode(&f.Object); err != nil {
|
||||||
|
return fmt.Sprintf("error marshaling %T to JSON: %v", f, err)
|
||||||
|
}
|
||||||
|
return buffer.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f formatAny) MarshalLog() interface{} {
|
||||||
|
// Returning a pointer to a pointer ensures that zapr doesn't find a
|
||||||
|
// fmt.Stringer or logr.Marshaler when it checks the type of the
|
||||||
|
// value. It then falls back to reflection, which dumps the value being
|
||||||
|
// pointed to (JSON doesn't have pointers).
|
||||||
|
ptr := &f.Object
|
||||||
|
return &ptr
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ fmt.Stringer = formatAny{}
|
||||||
|
var _ logr.Marshaler = formatAny{}
|
41
vendor/k8s.io/klog/v2/internal/buffer/buffer.go
generated
vendored
41
vendor/k8s.io/klog/v2/internal/buffer/buffer.go
generated
vendored
@ -55,6 +55,17 @@ func GetBuffer() *Buffer {
|
|||||||
|
|
||||||
// PutBuffer returns a buffer to the free list.
|
// PutBuffer returns a buffer to the free list.
|
||||||
func PutBuffer(b *Buffer) {
|
func PutBuffer(b *Buffer) {
|
||||||
|
if b.Len() >= 256 {
|
||||||
|
// Let big buffers die a natural death, without relying on
|
||||||
|
// sync.Pool behavior. The documentation implies that items may
|
||||||
|
// get deallocated while stored there ("If the Pool holds the
|
||||||
|
// only reference when this [= be removed automatically]
|
||||||
|
// happens, the item might be deallocated."), but
|
||||||
|
// https://github.com/golang/go/issues/23199 leans more towards
|
||||||
|
// having such a size limit.
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
buffers.Put(b)
|
buffers.Put(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,7 +110,8 @@ func (buf *Buffer) someDigits(i, d int) int {
|
|||||||
return copy(buf.Tmp[i:], buf.Tmp[j:])
|
return copy(buf.Tmp[i:], buf.Tmp[j:])
|
||||||
}
|
}
|
||||||
|
|
||||||
// FormatHeader formats a log header using the provided file name and line number.
|
// FormatHeader formats a log header using the provided file name and line number
|
||||||
|
// and writes it into the buffer.
|
||||||
func (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time) {
|
func (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time) {
|
||||||
if line < 0 {
|
if line < 0 {
|
||||||
line = 0 // not a real line number, but acceptable to someDigits
|
line = 0 // not a real line number, but acceptable to someDigits
|
||||||
@ -135,3 +147,30 @@ func (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now
|
|||||||
buf.Tmp[n+2] = ' '
|
buf.Tmp[n+2] = ' '
|
||||||
buf.Write(buf.Tmp[:n+3])
|
buf.Write(buf.Tmp[:n+3])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SprintHeader formats a log header and returns a string. This is a simpler
|
||||||
|
// version of FormatHeader for use in ktesting.
|
||||||
|
func (buf *Buffer) SprintHeader(s severity.Severity, now time.Time) string {
|
||||||
|
if s > severity.FatalLog {
|
||||||
|
s = severity.InfoLog // for safety.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.
|
||||||
|
// It's worth about 3X. Fprintf is hard.
|
||||||
|
_, month, day := now.Date()
|
||||||
|
hour, minute, second := now.Clock()
|
||||||
|
// Lmmdd hh:mm:ss.uuuuuu threadid file:line]
|
||||||
|
buf.Tmp[0] = severity.Char[s]
|
||||||
|
buf.twoDigits(1, int(month))
|
||||||
|
buf.twoDigits(3, day)
|
||||||
|
buf.Tmp[5] = ' '
|
||||||
|
buf.twoDigits(6, hour)
|
||||||
|
buf.Tmp[8] = ':'
|
||||||
|
buf.twoDigits(9, minute)
|
||||||
|
buf.Tmp[11] = ':'
|
||||||
|
buf.twoDigits(12, second)
|
||||||
|
buf.Tmp[14] = '.'
|
||||||
|
buf.nDigits(6, 15, now.Nanosecond()/1000, '0')
|
||||||
|
buf.Tmp[21] = ']'
|
||||||
|
return string(buf.Tmp[:22])
|
||||||
|
}
|
||||||
|
77
vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go
generated
vendored
77
vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go
generated
vendored
@ -18,6 +18,7 @@ package serialize
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
@ -95,9 +96,15 @@ func MergeKVs(first, second []interface{}) []interface{} {
|
|||||||
return merged
|
return merged
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Formatter struct {
|
||||||
|
AnyToStringHook AnyToStringFunc
|
||||||
|
}
|
||||||
|
|
||||||
|
type AnyToStringFunc func(v interface{}) string
|
||||||
|
|
||||||
// MergeKVsInto is a variant of MergeKVs which directly formats the key/value
|
// MergeKVsInto is a variant of MergeKVs which directly formats the key/value
|
||||||
// pairs into a buffer.
|
// pairs into a buffer.
|
||||||
func MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {
|
func (f Formatter) MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {
|
||||||
if len(first) == 0 && len(second) == 0 {
|
if len(first) == 0 && len(second) == 0 {
|
||||||
// Nothing to do at all.
|
// Nothing to do at all.
|
||||||
return
|
return
|
||||||
@ -107,7 +114,7 @@ func MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {
|
|||||||
// Nothing to be overridden, second slice is well-formed
|
// Nothing to be overridden, second slice is well-formed
|
||||||
// and can be used directly.
|
// and can be used directly.
|
||||||
for i := 0; i < len(second); i += 2 {
|
for i := 0; i < len(second); i += 2 {
|
||||||
KVFormat(b, second[i], second[i+1])
|
f.KVFormat(b, second[i], second[i+1])
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -127,24 +134,28 @@ func MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {
|
|||||||
if overrides[key] {
|
if overrides[key] {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
KVFormat(b, key, first[i+1])
|
f.KVFormat(b, key, first[i+1])
|
||||||
}
|
}
|
||||||
// Round down.
|
// Round down.
|
||||||
l := len(second)
|
l := len(second)
|
||||||
l = l / 2 * 2
|
l = l / 2 * 2
|
||||||
for i := 1; i < l; i += 2 {
|
for i := 1; i < l; i += 2 {
|
||||||
KVFormat(b, second[i-1], second[i])
|
f.KVFormat(b, second[i-1], second[i])
|
||||||
}
|
}
|
||||||
if len(second)%2 == 1 {
|
if len(second)%2 == 1 {
|
||||||
KVFormat(b, second[len(second)-1], missingValue)
|
f.KVFormat(b, second[len(second)-1], missingValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) {
|
||||||
|
Formatter{}.MergeAndFormatKVs(b, first, second)
|
||||||
|
}
|
||||||
|
|
||||||
const missingValue = "(MISSING)"
|
const missingValue = "(MISSING)"
|
||||||
|
|
||||||
// KVListFormat serializes all key/value pairs into the provided buffer.
|
// KVListFormat serializes all key/value pairs into the provided buffer.
|
||||||
// A space gets inserted before the first pair and between each pair.
|
// A space gets inserted before the first pair and between each pair.
|
||||||
func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
|
func (f Formatter) KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
|
||||||
for i := 0; i < len(keysAndValues); i += 2 {
|
for i := 0; i < len(keysAndValues); i += 2 {
|
||||||
var v interface{}
|
var v interface{}
|
||||||
k := keysAndValues[i]
|
k := keysAndValues[i]
|
||||||
@ -153,13 +164,17 @@ func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
|
|||||||
} else {
|
} else {
|
||||||
v = missingValue
|
v = missingValue
|
||||||
}
|
}
|
||||||
KVFormat(b, k, v)
|
f.KVFormat(b, k, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) {
|
||||||
|
Formatter{}.KVListFormat(b, keysAndValues...)
|
||||||
|
}
|
||||||
|
|
||||||
// KVFormat serializes one key/value pair into the provided buffer.
|
// KVFormat serializes one key/value pair into the provided buffer.
|
||||||
// A space gets inserted before the pair.
|
// A space gets inserted before the pair.
|
||||||
func KVFormat(b *bytes.Buffer, k, v interface{}) {
|
func (f Formatter) KVFormat(b *bytes.Buffer, k, v interface{}) {
|
||||||
b.WriteByte(' ')
|
b.WriteByte(' ')
|
||||||
// Keys are assumed to be well-formed according to
|
// Keys are assumed to be well-formed according to
|
||||||
// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments
|
// https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments
|
||||||
@ -182,11 +197,11 @@ func KVFormat(b *bytes.Buffer, k, v interface{}) {
|
|||||||
case textWriter:
|
case textWriter:
|
||||||
writeTextWriterValue(b, v)
|
writeTextWriterValue(b, v)
|
||||||
case fmt.Stringer:
|
case fmt.Stringer:
|
||||||
writeStringValue(b, true, StringerToString(v))
|
writeStringValue(b, StringerToString(v))
|
||||||
case string:
|
case string:
|
||||||
writeStringValue(b, true, v)
|
writeStringValue(b, v)
|
||||||
case error:
|
case error:
|
||||||
writeStringValue(b, true, ErrorToString(v))
|
writeStringValue(b, ErrorToString(v))
|
||||||
case logr.Marshaler:
|
case logr.Marshaler:
|
||||||
value := MarshalerToValue(v)
|
value := MarshalerToValue(v)
|
||||||
// A marshaler that returns a string is useful for
|
// A marshaler that returns a string is useful for
|
||||||
@ -201,9 +216,9 @@ func KVFormat(b *bytes.Buffer, k, v interface{}) {
|
|||||||
// value directly.
|
// value directly.
|
||||||
switch value := value.(type) {
|
switch value := value.(type) {
|
||||||
case string:
|
case string:
|
||||||
writeStringValue(b, true, value)
|
writeStringValue(b, value)
|
||||||
default:
|
default:
|
||||||
writeStringValue(b, false, fmt.Sprintf("%+v", value))
|
f.formatAny(b, value)
|
||||||
}
|
}
|
||||||
case []byte:
|
case []byte:
|
||||||
// In https://github.com/kubernetes/klog/pull/237 it was decided
|
// In https://github.com/kubernetes/klog/pull/237 it was decided
|
||||||
@ -220,10 +235,35 @@ func KVFormat(b *bytes.Buffer, k, v interface{}) {
|
|||||||
b.WriteByte('=')
|
b.WriteByte('=')
|
||||||
b.WriteString(fmt.Sprintf("%+q", v))
|
b.WriteString(fmt.Sprintf("%+q", v))
|
||||||
default:
|
default:
|
||||||
writeStringValue(b, false, fmt.Sprintf("%+v", v))
|
f.formatAny(b, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func KVFormat(b *bytes.Buffer, k, v interface{}) {
|
||||||
|
Formatter{}.KVFormat(b, k, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
// formatAny is the fallback formatter for a value. It supports a hook (for
|
||||||
|
// example, for YAML encoding) and itself uses JSON encoding.
|
||||||
|
func (f Formatter) formatAny(b *bytes.Buffer, v interface{}) {
|
||||||
|
b.WriteRune('=')
|
||||||
|
if f.AnyToStringHook != nil {
|
||||||
|
b.WriteString(f.AnyToStringHook(v))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
encoder := json.NewEncoder(b)
|
||||||
|
l := b.Len()
|
||||||
|
if err := encoder.Encode(v); err != nil {
|
||||||
|
// This shouldn't happen. We discard whatever the encoder
|
||||||
|
// wrote and instead dump an error string.
|
||||||
|
b.Truncate(l)
|
||||||
|
b.WriteString(fmt.Sprintf(`"<internal error: %v>"`, err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Remove trailing newline.
|
||||||
|
b.Truncate(b.Len() - 1)
|
||||||
|
}
|
||||||
|
|
||||||
// StringerToString converts a Stringer to a string,
|
// StringerToString converts a Stringer to a string,
|
||||||
// handling panics if they occur.
|
// handling panics if they occur.
|
||||||
func StringerToString(s fmt.Stringer) (ret string) {
|
func StringerToString(s fmt.Stringer) (ret string) {
|
||||||
@ -261,7 +301,7 @@ func ErrorToString(err error) (ret string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func writeTextWriterValue(b *bytes.Buffer, v textWriter) {
|
func writeTextWriterValue(b *bytes.Buffer, v textWriter) {
|
||||||
b.WriteRune('=')
|
b.WriteByte('=')
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
fmt.Fprintf(b, `"<panic: %s>"`, err)
|
fmt.Fprintf(b, `"<panic: %s>"`, err)
|
||||||
@ -270,20 +310,15 @@ func writeTextWriterValue(b *bytes.Buffer, v textWriter) {
|
|||||||
v.WriteText(b)
|
v.WriteText(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeStringValue(b *bytes.Buffer, quote bool, v string) {
|
func writeStringValue(b *bytes.Buffer, v string) {
|
||||||
data := []byte(v)
|
data := []byte(v)
|
||||||
index := bytes.IndexByte(data, '\n')
|
index := bytes.IndexByte(data, '\n')
|
||||||
if index == -1 {
|
if index == -1 {
|
||||||
b.WriteByte('=')
|
b.WriteByte('=')
|
||||||
if quote {
|
|
||||||
// Simple string, quote quotation marks and non-printable characters.
|
// Simple string, quote quotation marks and non-printable characters.
|
||||||
b.WriteString(strconv.Quote(v))
|
b.WriteString(strconv.Quote(v))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Non-string with no line breaks.
|
|
||||||
b.WriteString(v)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Complex multi-line string, show as-is with indention like this:
|
// Complex multi-line string, show as-is with indention like this:
|
||||||
// I... "hello world" key=<
|
// I... "hello world" key=<
|
||||||
|
12
vendor/k8s.io/klog/v2/k8s_references.go
generated
vendored
12
vendor/k8s.io/klog/v2/k8s_references.go
generated
vendored
@ -178,14 +178,14 @@ func (ks kobjSlice) process() (objs []interface{}, err string) {
|
|||||||
return objectRefs, ""
|
return objectRefs, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
var nilToken = []byte("<nil>")
|
var nilToken = []byte("null")
|
||||||
|
|
||||||
func (ks kobjSlice) WriteText(out *bytes.Buffer) {
|
func (ks kobjSlice) WriteText(out *bytes.Buffer) {
|
||||||
s := reflect.ValueOf(ks.arg)
|
s := reflect.ValueOf(ks.arg)
|
||||||
switch s.Kind() {
|
switch s.Kind() {
|
||||||
case reflect.Invalid:
|
case reflect.Invalid:
|
||||||
// nil parameter, print as empty slice.
|
// nil parameter, print as null.
|
||||||
out.WriteString("[]")
|
out.Write(nilToken)
|
||||||
return
|
return
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
// Okay, handle below.
|
// Okay, handle below.
|
||||||
@ -197,15 +197,15 @@ func (ks kobjSlice) WriteText(out *bytes.Buffer) {
|
|||||||
defer out.Write([]byte{']'})
|
defer out.Write([]byte{']'})
|
||||||
for i := 0; i < s.Len(); i++ {
|
for i := 0; i < s.Len(); i++ {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
out.Write([]byte{' '})
|
out.Write([]byte{','})
|
||||||
}
|
}
|
||||||
item := s.Index(i).Interface()
|
item := s.Index(i).Interface()
|
||||||
if item == nil {
|
if item == nil {
|
||||||
out.Write(nilToken)
|
out.Write(nilToken)
|
||||||
} else if v, ok := item.(KMetadata); ok {
|
} else if v, ok := item.(KMetadata); ok {
|
||||||
KObj(v).writeUnquoted(out)
|
KObj(v).WriteText(out)
|
||||||
} else {
|
} else {
|
||||||
fmt.Fprintf(out, "<KObjSlice needs a slice of values implementing KMetadata, got type %T>", item)
|
fmt.Fprintf(out, `"<KObjSlice needs a slice of values implementing KMetadata, got type %T>"`, item)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
104
vendor/k8s.io/klog/v2/klog.go
generated
vendored
104
vendor/k8s.io/klog/v2/klog.go
generated
vendored
@ -91,8 +91,6 @@ import (
|
|||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
|
||||||
|
|
||||||
"k8s.io/klog/v2/internal/buffer"
|
"k8s.io/klog/v2/internal/buffer"
|
||||||
"k8s.io/klog/v2/internal/clock"
|
"k8s.io/klog/v2/internal/clock"
|
||||||
"k8s.io/klog/v2/internal/dbg"
|
"k8s.io/klog/v2/internal/dbg"
|
||||||
@ -453,7 +451,7 @@ type settings struct {
|
|||||||
|
|
||||||
// logger is the global Logger chosen by users of klog, nil if
|
// logger is the global Logger chosen by users of klog, nil if
|
||||||
// none is available.
|
// none is available.
|
||||||
logger *Logger
|
logger *logWriter
|
||||||
|
|
||||||
// loggerOptions contains the options that were supplied for
|
// loggerOptions contains the options that were supplied for
|
||||||
// globalLogger.
|
// globalLogger.
|
||||||
@ -525,6 +523,11 @@ func (s settings) deepCopy() settings {
|
|||||||
}
|
}
|
||||||
s.vmodule.filter = filter
|
s.vmodule.filter = filter
|
||||||
|
|
||||||
|
if s.logger != nil {
|
||||||
|
logger := *s.logger
|
||||||
|
s.logger = &logger
|
||||||
|
}
|
||||||
|
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,15 +671,16 @@ func (l *loggingT) formatHeader(s severity.Severity, file string, line int) *buf
|
|||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) println(s severity.Severity, logger *logr.Logger, filter LogFilter, args ...interface{}) {
|
func (l *loggingT) println(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {
|
||||||
l.printlnDepth(s, logger, filter, 1, args...)
|
l.printlnDepth(s, logger, filter, 1, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) printlnDepth(s severity.Severity, logger *logr.Logger, filter LogFilter, depth int, args ...interface{}) {
|
func (l *loggingT) printlnDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {
|
||||||
buf, file, line := l.header(s, depth)
|
buf, file, line := l.header(s, depth)
|
||||||
// if logger is set, we clear the generated header as we rely on the backing
|
// If a logger is set and doesn't support writing a formatted buffer,
|
||||||
// logger implementation to print headers
|
// we clear the generated header as we rely on the backing
|
||||||
if logger != nil {
|
// logger implementation to print headers.
|
||||||
|
if logger != nil && logger.writeKlogBuffer == nil {
|
||||||
buffer.PutBuffer(buf)
|
buffer.PutBuffer(buf)
|
||||||
buf = buffer.GetBuffer()
|
buf = buffer.GetBuffer()
|
||||||
}
|
}
|
||||||
@ -687,15 +691,16 @@ func (l *loggingT) printlnDepth(s severity.Severity, logger *logr.Logger, filter
|
|||||||
l.output(s, logger, buf, depth, file, line, false)
|
l.output(s, logger, buf, depth, file, line, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) print(s severity.Severity, logger *logr.Logger, filter LogFilter, args ...interface{}) {
|
func (l *loggingT) print(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) {
|
||||||
l.printDepth(s, logger, filter, 1, args...)
|
l.printDepth(s, logger, filter, 1, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) printDepth(s severity.Severity, logger *logr.Logger, filter LogFilter, depth int, args ...interface{}) {
|
func (l *loggingT) printDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) {
|
||||||
buf, file, line := l.header(s, depth)
|
buf, file, line := l.header(s, depth)
|
||||||
// if logr is set, we clear the generated header as we rely on the backing
|
// If a logger is set and doesn't support writing a formatted buffer,
|
||||||
// logr implementation to print headers
|
// we clear the generated header as we rely on the backing
|
||||||
if logger != nil {
|
// logger implementation to print headers.
|
||||||
|
if logger != nil && logger.writeKlogBuffer == nil {
|
||||||
buffer.PutBuffer(buf)
|
buffer.PutBuffer(buf)
|
||||||
buf = buffer.GetBuffer()
|
buf = buffer.GetBuffer()
|
||||||
}
|
}
|
||||||
@ -709,15 +714,16 @@ func (l *loggingT) printDepth(s severity.Severity, logger *logr.Logger, filter L
|
|||||||
l.output(s, logger, buf, depth, file, line, false)
|
l.output(s, logger, buf, depth, file, line, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) printf(s severity.Severity, logger *logr.Logger, filter LogFilter, format string, args ...interface{}) {
|
func (l *loggingT) printf(s severity.Severity, logger *logWriter, filter LogFilter, format string, args ...interface{}) {
|
||||||
l.printfDepth(s, logger, filter, 1, format, args...)
|
l.printfDepth(s, logger, filter, 1, format, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loggingT) printfDepth(s severity.Severity, logger *logr.Logger, filter LogFilter, depth int, format string, args ...interface{}) {
|
func (l *loggingT) printfDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, format string, args ...interface{}) {
|
||||||
buf, file, line := l.header(s, depth)
|
buf, file, line := l.header(s, depth)
|
||||||
// if logr is set, we clear the generated header as we rely on the backing
|
// If a logger is set and doesn't support writing a formatted buffer,
|
||||||
// logr implementation to print headers
|
// we clear the generated header as we rely on the backing
|
||||||
if logger != nil {
|
// logger implementation to print headers.
|
||||||
|
if logger != nil && logger.writeKlogBuffer == nil {
|
||||||
buffer.PutBuffer(buf)
|
buffer.PutBuffer(buf)
|
||||||
buf = buffer.GetBuffer()
|
buf = buffer.GetBuffer()
|
||||||
}
|
}
|
||||||
@ -734,11 +740,12 @@ func (l *loggingT) printfDepth(s severity.Severity, logger *logr.Logger, filter
|
|||||||
// printWithFileLine behaves like print but uses the provided file and line number. If
|
// printWithFileLine behaves like print but uses the provided file and line number. If
|
||||||
// alsoLogToStderr is true, the log message always appears on standard error; it
|
// alsoLogToStderr is true, the log message always appears on standard error; it
|
||||||
// will also appear in the log file unless --logtostderr is set.
|
// will also appear in the log file unless --logtostderr is set.
|
||||||
func (l *loggingT) printWithFileLine(s severity.Severity, logger *logr.Logger, filter LogFilter, file string, line int, alsoToStderr bool, args ...interface{}) {
|
func (l *loggingT) printWithFileLine(s severity.Severity, logger *logWriter, filter LogFilter, file string, line int, alsoToStderr bool, args ...interface{}) {
|
||||||
buf := l.formatHeader(s, file, line)
|
buf := l.formatHeader(s, file, line)
|
||||||
// if logr is set, we clear the generated header as we rely on the backing
|
// If a logger is set and doesn't support writing a formatted buffer,
|
||||||
// logr implementation to print headers
|
// we clear the generated header as we rely on the backing
|
||||||
if logger != nil {
|
// logger implementation to print headers.
|
||||||
|
if logger != nil && logger.writeKlogBuffer == nil {
|
||||||
buffer.PutBuffer(buf)
|
buffer.PutBuffer(buf)
|
||||||
buf = buffer.GetBuffer()
|
buf = buffer.GetBuffer()
|
||||||
}
|
}
|
||||||
@ -753,7 +760,7 @@ func (l *loggingT) printWithFileLine(s severity.Severity, logger *logr.Logger, f
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if loggr is specified, will call loggr.Error, otherwise output with logging module.
|
// if loggr is specified, will call loggr.Error, otherwise output with logging module.
|
||||||
func (l *loggingT) errorS(err error, logger *logr.Logger, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
|
func (l *loggingT) errorS(err error, logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
|
||||||
if filter != nil {
|
if filter != nil {
|
||||||
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
|
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
|
||||||
}
|
}
|
||||||
@ -765,7 +772,7 @@ func (l *loggingT) errorS(err error, logger *logr.Logger, filter LogFilter, dept
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if loggr is specified, will call loggr.Info, otherwise output with logging module.
|
// if loggr is specified, will call loggr.Info, otherwise output with logging module.
|
||||||
func (l *loggingT) infoS(logger *logr.Logger, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
|
func (l *loggingT) infoS(logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) {
|
||||||
if filter != nil {
|
if filter != nil {
|
||||||
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
|
msg, keysAndValues = filter.FilterS(msg, keysAndValues)
|
||||||
}
|
}
|
||||||
@ -846,7 +853,7 @@ func LogToStderr(stderr bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// output writes the data to the log files and releases the buffer.
|
// output writes the data to the log files and releases the buffer.
|
||||||
func (l *loggingT) output(s severity.Severity, log *logr.Logger, buf *buffer.Buffer, depth int, file string, line int, alsoToStderr bool) {
|
func (l *loggingT) output(s severity.Severity, logger *logWriter, buf *buffer.Buffer, depth int, file string, line int, alsoToStderr bool) {
|
||||||
var isLocked = true
|
var isLocked = true
|
||||||
l.mu.Lock()
|
l.mu.Lock()
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -862,13 +869,17 @@ func (l *loggingT) output(s severity.Severity, log *logr.Logger, buf *buffer.Buf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
data := buf.Bytes()
|
data := buf.Bytes()
|
||||||
if log != nil {
|
if logger != nil {
|
||||||
|
if logger.writeKlogBuffer != nil {
|
||||||
|
logger.writeKlogBuffer(data)
|
||||||
|
} else {
|
||||||
// TODO: set 'severity' and caller information as structured log info
|
// TODO: set 'severity' and caller information as structured log info
|
||||||
// keysAndValues := []interface{}{"severity", severityName[s], "file", file, "line", line}
|
// keysAndValues := []interface{}{"severity", severityName[s], "file", file, "line", line}
|
||||||
if s == severity.ErrorLog {
|
if s == severity.ErrorLog {
|
||||||
logging.logger.WithCallDepth(depth+3).Error(nil, string(data))
|
logger.WithCallDepth(depth+3).Error(nil, string(data))
|
||||||
} else {
|
} else {
|
||||||
log.WithCallDepth(depth + 3).Info(string(data))
|
logger.WithCallDepth(depth + 3).Info(string(data))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if l.toStderr {
|
} else if l.toStderr {
|
||||||
os.Stderr.Write(data)
|
os.Stderr.Write(data)
|
||||||
@ -1217,6 +1228,19 @@ func CopyStandardLogTo(name string) {
|
|||||||
stdLog.SetOutput(logBridge(sev))
|
stdLog.SetOutput(logBridge(sev))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewStandardLogger returns a Logger that writes to the klog logs for the
|
||||||
|
// named and lower severities.
|
||||||
|
//
|
||||||
|
// Valid names are "INFO", "WARNING", "ERROR", and "FATAL". If the name is not
|
||||||
|
// recognized, NewStandardLogger panics.
|
||||||
|
func NewStandardLogger(name string) *stdLog.Logger {
|
||||||
|
sev, ok := severity.ByName(name)
|
||||||
|
if !ok {
|
||||||
|
panic(fmt.Sprintf("klog.NewStandardLogger(%q): unknown severity", name))
|
||||||
|
}
|
||||||
|
return stdLog.New(logBridge(sev), "", stdLog.Lshortfile)
|
||||||
|
}
|
||||||
|
|
||||||
// logBridge provides the Write method that enables CopyStandardLogTo to connect
|
// logBridge provides the Write method that enables CopyStandardLogTo to connect
|
||||||
// Go's standard logs to the logs provided by this package.
|
// Go's standard logs to the logs provided by this package.
|
||||||
type logBridge severity.Severity
|
type logBridge severity.Severity
|
||||||
@ -1277,7 +1301,7 @@ func (l *loggingT) setV(pc uintptr) Level {
|
|||||||
// See the documentation of V for more information.
|
// See the documentation of V for more information.
|
||||||
type Verbose struct {
|
type Verbose struct {
|
||||||
enabled bool
|
enabled bool
|
||||||
logr *logr.Logger
|
logger *logWriter
|
||||||
}
|
}
|
||||||
|
|
||||||
func newVerbose(level Level, b bool) Verbose {
|
func newVerbose(level Level, b bool) Verbose {
|
||||||
@ -1285,7 +1309,7 @@ func newVerbose(level Level, b bool) Verbose {
|
|||||||
return Verbose{b, nil}
|
return Verbose{b, nil}
|
||||||
}
|
}
|
||||||
v := logging.logger.V(int(level))
|
v := logging.logger.V(int(level))
|
||||||
return Verbose{b, &v}
|
return Verbose{b, &logWriter{Logger: v, writeKlogBuffer: logging.loggerOptions.writeKlogBuffer}}
|
||||||
}
|
}
|
||||||
|
|
||||||
// V reports whether verbosity at the call site is at least the requested level.
|
// V reports whether verbosity at the call site is at least the requested level.
|
||||||
@ -1359,7 +1383,7 @@ func (v Verbose) Enabled() bool {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) Info(args ...interface{}) {
|
func (v Verbose) Info(args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.print(severity.InfoLog, v.logr, logging.filter, args...)
|
logging.print(severity.InfoLog, v.logger, logging.filter, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1367,7 +1391,7 @@ func (v Verbose) Info(args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) InfoDepth(depth int, args ...interface{}) {
|
func (v Verbose) InfoDepth(depth int, args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.printDepth(severity.InfoLog, v.logr, logging.filter, depth, args...)
|
logging.printDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1375,7 +1399,7 @@ func (v Verbose) InfoDepth(depth int, args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) Infoln(args ...interface{}) {
|
func (v Verbose) Infoln(args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.println(severity.InfoLog, v.logr, logging.filter, args...)
|
logging.println(severity.InfoLog, v.logger, logging.filter, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1383,7 +1407,7 @@ func (v Verbose) Infoln(args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) InfolnDepth(depth int, args ...interface{}) {
|
func (v Verbose) InfolnDepth(depth int, args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.printlnDepth(severity.InfoLog, v.logr, logging.filter, depth, args...)
|
logging.printlnDepth(severity.InfoLog, v.logger, logging.filter, depth, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1391,7 +1415,7 @@ func (v Verbose) InfolnDepth(depth int, args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) Infof(format string, args ...interface{}) {
|
func (v Verbose) Infof(format string, args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.printf(severity.InfoLog, v.logr, logging.filter, format, args...)
|
logging.printf(severity.InfoLog, v.logger, logging.filter, format, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1399,7 +1423,7 @@ func (v Verbose) Infof(format string, args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) {
|
func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.printfDepth(severity.InfoLog, v.logr, logging.filter, depth, format, args...)
|
logging.printfDepth(severity.InfoLog, v.logger, logging.filter, depth, format, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1407,7 +1431,7 @@ func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) InfoS(msg string, keysAndValues ...interface{}) {
|
func (v Verbose) InfoS(msg string, keysAndValues ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.infoS(v.logr, logging.filter, 0, msg, keysAndValues...)
|
logging.infoS(v.logger, logging.filter, 0, msg, keysAndValues...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1421,14 +1445,14 @@ func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {
|
func (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.infoS(v.logr, logging.filter, depth, msg, keysAndValues...)
|
logging.infoS(v.logger, logging.filter, depth, msg, keysAndValues...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deprecated: Use ErrorS instead.
|
// Deprecated: Use ErrorS instead.
|
||||||
func (v Verbose) Error(err error, msg string, args ...interface{}) {
|
func (v Verbose) Error(err error, msg string, args ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.errorS(err, v.logr, logging.filter, 0, msg, args...)
|
logging.errorS(err, v.logger, logging.filter, 0, msg, args...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1436,7 +1460,7 @@ func (v Verbose) Error(err error, msg string, args ...interface{}) {
|
|||||||
// See the documentation of V for usage.
|
// See the documentation of V for usage.
|
||||||
func (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) {
|
func (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) {
|
||||||
if v.enabled {
|
if v.enabled {
|
||||||
logging.errorS(err, v.logr, logging.filter, 0, msg, keysAndValues...)
|
logging.errorS(err, v.logger, logging.filter, 0, msg, keysAndValues...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
vendor/modules.txt
vendored
2
vendor/modules.txt
vendored
@ -1190,7 +1190,7 @@ k8s.io/component-helpers/node/util/sysctl
|
|||||||
k8s.io/component-helpers/scheduling/corev1
|
k8s.io/component-helpers/scheduling/corev1
|
||||||
k8s.io/component-helpers/scheduling/corev1/nodeaffinity
|
k8s.io/component-helpers/scheduling/corev1/nodeaffinity
|
||||||
k8s.io/component-helpers/storage/volume
|
k8s.io/component-helpers/storage/volume
|
||||||
# k8s.io/klog/v2 v2.90.0
|
# k8s.io/klog/v2 v2.100.1
|
||||||
## explicit; go 1.13
|
## explicit; go 1.13
|
||||||
k8s.io/klog/v2
|
k8s.io/klog/v2
|
||||||
k8s.io/klog/v2/internal/buffer
|
k8s.io/klog/v2/internal/buffer
|
||||||
|
Loading…
Reference in New Issue
Block a user