1
1
/*
2
- Copyright 2019 The Kubernetes Authors.
2
+ Copyright 2020 The Kubernetes Authors.
3
3
4
4
Licensed under the Apache License, Version 2.0 (the "License");
5
5
you may not use this file except in compliance with the License.
@@ -16,20 +16,18 @@ limitations under the License.
16
16
17
17
// Package zap contains helpers for setting up a new logr.Logger instance
18
18
// using the Zap logging framework.
19
-
20
19
package zap
21
20
22
21
import (
23
22
"fmt"
23
+ "strconv"
24
24
"strings"
25
25
26
26
"github.com/spf13/pflag"
27
27
"go.uber.org/zap"
28
28
"go.uber.org/zap/zapcore"
29
29
)
30
30
31
- type encoderConfigFunc func (* zapcore.EncoderConfig )
32
-
33
31
type encoderFlag struct {
34
32
setFunc func (zapcore.Encoder )
35
33
value string
@@ -59,19 +57,13 @@ func (ev *encoderFlag) Set(flagValue string) error {
59
57
return nil
60
58
}
61
59
62
- func newJSONEncoder (ecfs ... encoderConfigFunc ) zapcore.Encoder {
60
+ func newJSONEncoder () zapcore.Encoder {
63
61
encoderConfig := zap .NewProductionEncoderConfig ()
64
- for _ , f := range ecfs {
65
- f (& encoderConfig )
66
- }
67
62
return zapcore .NewJSONEncoder (encoderConfig )
68
63
}
69
64
70
- func newConsoleEncoder (ecfs ... encoderConfigFunc ) zapcore.Encoder {
65
+ func newConsoleEncoder () zapcore.Encoder {
71
66
encoderConfig := zap .NewDevelopmentEncoderConfig ()
72
- for _ , f := range ecfs {
73
- f (& encoderConfig )
74
- }
75
67
return zapcore .NewConsoleEncoder (encoderConfig )
76
68
}
77
69
@@ -84,16 +76,31 @@ var _ pflag.Value = &levelFlag{}
84
76
85
77
func (ev * levelFlag ) Set (flagValue string ) error {
86
78
lower := strings .ToLower (flagValue )
79
+ var lvl int
87
80
switch lower {
88
- case "debug" :
81
+ case "debug" , "-1" :
89
82
ev .setFunc (zap .NewAtomicLevelAt (zap .DebugLevel ))
90
- case "info" :
83
+ case "info" , "0" :
91
84
ev .setFunc (zap .NewAtomicLevelAt (zap .InfoLevel ))
85
+ case "error" , "2" :
86
+ ev .setFunc (zap .NewAtomicLevelAt (zap .ErrorLevel ))
92
87
default :
93
- return fmt .Errorf ("invalid log level \" %s\" " , flagValue )
88
+ i , err := strconv .Atoi (lower )
89
+ if err != nil {
90
+ return fmt .Errorf ("invalid log level \" %s\" " , flagValue )
91
+ }
92
+ if i > 0 {
93
+ fmt .Println ("Iam here" )
94
+ lvl = - 1 * i
95
+ ev .setFunc (zap .NewAtomicLevelAt (zapcore .Level (int8 (lvl ))))
96
+ } else {
97
+ return fmt .Errorf ("invalid log level \" %s\" " , flagValue )
98
+ }
94
99
}
100
+
95
101
ev .value = flagValue
96
102
return nil
103
+
97
104
}
98
105
99
106
func (ev * levelFlag ) String () string {
@@ -109,11 +116,23 @@ type stackTraceFlag struct {
109
116
value string
110
117
}
111
118
119
+ var _ pflag.Value = & stackTraceFlag {}
120
+
112
121
func (ev * stackTraceFlag ) Set (flagValue string ) error {
113
122
lower := strings .ToLower (flagValue )
114
123
switch lower {
124
+ case "debug" :
125
+ ev .setFunc (zap .NewAtomicLevelAt (zap .DebugLevel ))
126
+ case "info" :
127
+ ev .setFunc (zap .NewAtomicLevelAt (zap .InfoLevel ))
115
128
case "warn" :
116
129
ev .setFunc (zap .NewAtomicLevelAt (zap .WarnLevel ))
130
+ case "dpanic" :
131
+ ev .setFunc (zap .NewAtomicLevelAt (zap .DPanicLevel ))
132
+ case "panic" :
133
+ ev .setFunc (zap .NewAtomicLevelAt (zap .PanicLevel ))
134
+ case "fatal" :
135
+ ev .setFunc (zap .NewAtomicLevelAt (zap .FatalLevel ))
117
136
case "error" :
118
137
ev .setFunc (zap .NewAtomicLevelAt (zap .ErrorLevel ))
119
138
default :
0 commit comments