Skip to content

Commit 7d4b41e

Browse files
Added newTimeEncoder() func
1 parent 596e050 commit 7d4b41e

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

hack/tools/go.sum

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk
307307
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
308308
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
309309
golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
310+
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550 h1:ObdrDkeb4kJdCP557AjRjq69pTHfNouLtWZG7j9rPN8=
310311
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
311312
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
312313
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs=

pkg/log/zap/flags.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func (ev *timeEncoderFlag) Type() string {
106106
}
107107

108108
func (ev *timeEncoderFlag) Set(flagValue string) error {
109-
val := strings.ToLower(flagValue)
109+
/*val := strings.ToLower(flagValue)
110110
var timeEnc zapcore.TimeEncoder
111111
switch val {
112112
case "iso8601", "rfc3339", "rfc3339nano", "millis", "nanos", "epoch":
@@ -116,11 +116,26 @@ func (ev *timeEncoderFlag) Set(flagValue string) error {
116116
ev.setFunc(timeEnc)
117117
default:
118118
return fmt.Errorf("invalid time encoder value \"%s\"", flagValue)
119-
}
119+
}*/
120+
ev.setFunc(newTimeEncoder(flagValue))
120121
ev.value = flagValue
121122
return nil
122123
}
123124

125+
func newTimeEncoder(flagValue string) zapcore.TimeEncoder {
126+
var encoder zapcore.TimeEncoder
127+
val := strings.ToLower(flagValue)
128+
switch val {
129+
case "iso8601", "rfc3339", "rfc3339nano", "millis", "nanos", "epoch":
130+
if err := encoder.UnmarshalText([]byte(val)); err != nil {
131+
fmt.Printf("not able to unmarshal time encoder value \"%s\"", val)
132+
}
133+
default:
134+
fmt.Printf("invalid time encoder value \"%s\"", val)
135+
}
136+
return encoder
137+
}
138+
124139
func withTimeEncoding(te zapcore.TimeEncoder) encoderConfigFunc {
125140
return func(ec *zapcore.EncoderConfig) {
126141
ec.EncodeTime = te

pkg/log/zap/zap.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
)
3232

3333
var encVal encoderFlag
34+
var timeEncVal timeEncoderFlag
3435

3536
// New returns a brand new Logger configured with Opts. It
3637
// uses KubeAwareEncoder which adds Type information and
@@ -100,6 +101,14 @@ func Encoder(encoder zapcore.Encoder) func(o *Options) {
100101
}
101102
}
102103

104+
// TimeEncoder configures how the logger will encode time format.
105+
// See Options.TimeEncoder
106+
func TimeEncoder(timeEncoder string) func(o *Options) {
107+
return func(o *Options) {
108+
o.TimeEncoder = newTimeEncoder(timeEncoder)
109+
}
110+
}
111+
103112
// Level sets the the minimum enabled logging level e.g Debug, Info
104113
// See Options.Level
105114
func Level(level *zap.AtomicLevel) func(o *Options) {
@@ -232,7 +241,7 @@ func (o *Options) BindFlags(fs *flag.FlagSet) {
232241
"Production Mode defaults(encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error)")
233242

234243
// Set TimeEncoder value
235-
var timeEncVal timeEncoderFlag
244+
//var timeEncVal timeEncoderFlag
236245
timeEncVal.setFunc = func(fromFlag zapcore.TimeEncoder) {
237246
o.TimeEncoder = fromFlag
238247
}

0 commit comments

Comments
 (0)