From 089d8dda1250497cc45dede2b50f3bf7f92d6afb Mon Sep 17 00:00:00 2001 From: Ryan Phillips Date: Tue, 9 Mar 2021 09:02:45 -0600 Subject: [PATCH] add duration encoder to structured logger --- staging/src/k8s.io/component-base/logs/json/json.go | 5 +++-- staging/src/k8s.io/component-base/logs/json/json_test.go | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/component-base/logs/json/json.go b/staging/src/k8s.io/component-base/logs/json/json.go index f9bb55656fa..fd23246979e 100644 --- a/staging/src/k8s.io/component-base/logs/json/json.go +++ b/staging/src/k8s.io/component-base/logs/json/json.go @@ -148,8 +148,9 @@ func (l *zapLogger) WithName(name string) logr.Logger { var encoderConfig = zapcore.EncoderConfig{ MessageKey: "msg", - TimeKey: "ts", - EncodeTime: zapcore.EpochMillisTimeEncoder, + TimeKey: "ts", + EncodeTime: zapcore.EpochMillisTimeEncoder, + EncodeDuration: zapcore.StringDurationEncoder, } // NewJSONLogger creates a new json logr.Logger using the given Zap Logger to log. diff --git a/staging/src/k8s.io/component-base/logs/json/json_test.go b/staging/src/k8s.io/component-base/logs/json/json_test.go index 58ea5d1103e..da65cd55bbd 100644 --- a/staging/src/k8s.io/component-base/logs/json/json_test.go +++ b/staging/src/k8s.io/component-base/logs/json/json_test.go @@ -57,6 +57,11 @@ func TestZapLoggerInfo(t *testing.T) { format: "{\"ts\":%f,\"msg\":\"non-string key argument passed to logging, ignoring all later arguments\",\"v\":0}\n{\"ts\":0.000123,\"msg\":\"test for non-string key argument\",\"v\":0,\"ns\":\"default\",\"podnum\":2}\n", keysValues: []interface{}{"ns", "default", "podnum", 2, 200, "replica", "Running", 10}, }, + { + msg: "test for duration value argument", + format: "{\"ts\":%f,\"msg\":\"test for duration value argument\",\"v\":0,\"duration\":\"5s\"}\n", + keysValues: []interface{}{"duration", time.Duration(5 * time.Second)}, + }, } for _, data := range testDataInfo {