@@ -28,6 +28,19 @@ import (
28
28
"go.uber.org/zap/zapcore"
29
29
)
30
30
31
+ var levelStrings = map [string ]zapcore.Level {
32
+ "debug" : zap .DebugLevel ,
33
+ "-1" : zap .DebugLevel ,
34
+ "info" : zap .InfoLevel ,
35
+ "0" : zap .InfoLevel ,
36
+ "error" : zap .ErrorLevel ,
37
+ "2" : zap .ErrorLevel ,
38
+ "dpanic" : zap .DPanicLevel ,
39
+ "panic" : zap .PanicLevel ,
40
+ "warn" : zap .WarnLevel ,
41
+ "fatal" : zap .FatalLevel ,
42
+ }
43
+
31
44
type encoderFlag struct {
32
45
setFunc func (zapcore.Encoder )
33
46
value string
@@ -75,32 +88,22 @@ type levelFlag struct {
75
88
var _ pflag.Value = & levelFlag {}
76
89
77
90
func (ev * levelFlag ) Set (flagValue string ) error {
78
- lower := strings .ToLower (flagValue )
79
- var lvl int
80
- switch lower {
81
- case "debug" , "-1" :
82
- ev .setFunc (zap .NewAtomicLevelAt (zap .DebugLevel ))
83
- case "info" , "0" :
84
- ev .setFunc (zap .NewAtomicLevelAt (zap .InfoLevel ))
85
- case "error" , "2" :
86
- ev .setFunc (zap .NewAtomicLevelAt (zap .ErrorLevel ))
87
- default :
88
- i , err := strconv .Atoi (lower )
91
+ level , validLevel := levelStrings [strings .ToLower (flagValue )]
92
+ if ! validLevel {
93
+ logLevel , err := strconv .Atoi (flagValue )
89
94
if err != nil {
90
- return fmt .Errorf ("invalid log level \" %s\" " , flagValue )
95
+ return fmt .Errorf ("In here invalid log level \" %s\" " , flagValue )
91
96
}
92
- if i > 0 {
93
- fmt .Println ("Iam here" )
94
- lvl = - 1 * i
95
- ev .setFunc (zap .NewAtomicLevelAt (zapcore .Level (int8 (lvl ))))
97
+ if logLevel > 0 {
98
+ intLevel := - 1 * logLevel
99
+ ev .setFunc (zap .NewAtomicLevelAt (zapcore .Level (int8 (intLevel ))))
96
100
} else {
97
- return fmt .Errorf ("invalid log level \" %s\" " , flagValue )
101
+ return fmt .Errorf ("There invalid log level \" %s\" " , flagValue )
98
102
}
99
103
}
100
-
104
+ ev . setFunc ( zap . NewAtomicLevelAt ( level ))
101
105
ev .value = flagValue
102
106
return nil
103
-
104
107
}
105
108
106
109
func (ev * levelFlag ) String () string {
@@ -119,25 +122,11 @@ type stackTraceFlag struct {
119
122
var _ pflag.Value = & stackTraceFlag {}
120
123
121
124
func (ev * stackTraceFlag ) Set (flagValue string ) error {
122
- lower := strings .ToLower (flagValue )
123
- switch lower {
124
- case "debug" :
125
- ev .setFunc (zap .NewAtomicLevelAt (zap .DebugLevel ))
126
- case "info" :
127
- ev .setFunc (zap .NewAtomicLevelAt (zap .InfoLevel ))
128
- case "warn" :
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 ))
136
- case "error" :
137
- ev .setFunc (zap .NewAtomicLevelAt (zap .ErrorLevel ))
138
- default :
125
+ level , validLevel := levelStrings [strings .ToLower (flagValue )]
126
+ if ! validLevel {
139
127
return fmt .Errorf ("invalid stacktrace level \" %s\" " , flagValue )
140
128
}
129
+ ev .setFunc (zap .NewAtomicLevelAt (level ))
141
130
ev .value = flagValue
142
131
return nil
143
132
}
0 commit comments