mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Merge pull request #102620 from serathius/zap-sampling
Disable zap sampling and cleanup config
This commit is contained in:
commit
f1f58f20ab
@ -17,7 +17,6 @@ limitations under the License.
|
|||||||
package logs
|
package logs
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
@ -35,6 +34,38 @@ var (
|
|||||||
timeNow = time.Now
|
timeNow = time.Now
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
JSONLogger = NewJSONLogger(nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewJSONLogger creates a new json logr.Logger using the given Zap Logger to log.
|
||||||
|
func NewJSONLogger(w zapcore.WriteSyncer) logr.Logger {
|
||||||
|
l, _ := zapConfig.Build()
|
||||||
|
l = l.WithOptions(zap.AddCallerSkip(1))
|
||||||
|
if w != nil {
|
||||||
|
l = l.WithOptions(zap.WrapCore(
|
||||||
|
func(zapcore.Core) zapcore.Core {
|
||||||
|
return zapcore.NewCore(zapcore.NewJSONEncoder(zapConfig.EncoderConfig), zapcore.AddSync(w), zapcore.DebugLevel)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
return &zapLogger{l: l}
|
||||||
|
}
|
||||||
|
|
||||||
|
var zapConfig = zap.Config{
|
||||||
|
Level: zap.NewAtomicLevelAt(zap.DebugLevel),
|
||||||
|
Development: false,
|
||||||
|
Sampling: nil,
|
||||||
|
Encoding: "json",
|
||||||
|
EncoderConfig: zapcore.EncoderConfig{
|
||||||
|
MessageKey: "msg",
|
||||||
|
TimeKey: "ts",
|
||||||
|
EncodeTime: zapcore.EpochMillisTimeEncoder,
|
||||||
|
EncodeDuration: zapcore.StringDurationEncoder,
|
||||||
|
},
|
||||||
|
OutputPaths: []string{"stdout"},
|
||||||
|
ErrorOutputPaths: []string{"stderr"},
|
||||||
|
}
|
||||||
|
|
||||||
// zapLogger is a logr.Logger that uses Zap to record log.
|
// zapLogger is a logr.Logger that uses Zap to record log.
|
||||||
type zapLogger struct {
|
type zapLogger struct {
|
||||||
// NB: this looks very similar to zap.SugaredLogger, but
|
// NB: this looks very similar to zap.SugaredLogger, but
|
||||||
@ -43,7 +74,7 @@ type zapLogger struct {
|
|||||||
lvl int
|
lvl int
|
||||||
}
|
}
|
||||||
|
|
||||||
// implement logr.Logger
|
// zapLogger implement logr.Logger
|
||||||
var _ logr.Logger = &zapLogger{}
|
var _ logr.Logger = &zapLogger{}
|
||||||
|
|
||||||
// Enabled should always return true
|
// Enabled should always return true
|
||||||
@ -124,6 +155,10 @@ func (l *zapLogger) Error(err error, msg string, keysAndVals ...interface{}) {
|
|||||||
checkedEntry.Write(l.handleFields(keysAndVals, handleError(err))...)
|
checkedEntry.Write(l.handleFields(keysAndVals, handleError(err))...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func handleError(err error) zap.Field {
|
||||||
|
return zap.NamedError("err", err)
|
||||||
|
}
|
||||||
|
|
||||||
// V return info logr.Logger with specified level
|
// V return info logr.Logger with specified level
|
||||||
func (l *zapLogger) V(level int) logr.Logger {
|
func (l *zapLogger) V(level int) logr.Logger {
|
||||||
return &zapLogger{
|
return &zapLogger{
|
||||||
@ -143,36 +178,3 @@ func (l *zapLogger) WithName(name string) logr.Logger {
|
|||||||
l.l = l.l.Named(name)
|
l.l = l.l.Named(name)
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
|
||||||
// encoderConfig config zap encodetime format
|
|
||||||
var encoderConfig = zapcore.EncoderConfig{
|
|
||||||
MessageKey: "msg",
|
|
||||||
|
|
||||||
TimeKey: "ts",
|
|
||||||
EncodeTime: zapcore.EpochMillisTimeEncoder,
|
|
||||||
EncodeDuration: zapcore.StringDurationEncoder,
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewJSONLogger creates a new json logr.Logger using the given Zap Logger to log.
|
|
||||||
func NewJSONLogger(w zapcore.WriteSyncer) logr.Logger {
|
|
||||||
l, _ := zap.NewProduction()
|
|
||||||
if w == nil {
|
|
||||||
w = os.Stdout
|
|
||||||
}
|
|
||||||
log := l.WithOptions(zap.AddCallerSkip(1),
|
|
||||||
zap.WrapCore(
|
|
||||||
func(zapcore.Core) zapcore.Core {
|
|
||||||
return zapcore.NewCore(zapcore.NewJSONEncoder(encoderConfig), zapcore.AddSync(w), zapcore.DebugLevel)
|
|
||||||
}))
|
|
||||||
return &zapLogger{
|
|
||||||
l: log,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func handleError(err error) zap.Field {
|
|
||||||
return zap.NamedError("err", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
JSONLogger = NewJSONLogger(nil)
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user