File tree Expand file tree Collapse file tree 2 files changed +42
-5
lines changed Expand file tree Collapse file tree 2 files changed +42
-5
lines changed Original file line number Diff line number Diff line change @@ -49,3 +49,22 @@ k := picolo.NewFrom(l, "[more-prefix]")
49
49
k.Errorf (" Error message: %v " , err)
50
50
// 2017-12-21 23:24:25.267 ERROR [some-prefix] [more-prefix] Error message: No such file or directory
51
51
```
52
+
53
+ # Helpers
54
+
55
+ Use ` picolo.LevelFromString ` to parse a string into a log level. This can be used like:
56
+
57
+ ``` go
58
+ // ...
59
+ l := flag.String (" logLevel" , " debug" , " Log level" )
60
+ flag.Parse ()
61
+
62
+ lvl , err := picolo.LevelFromString (*l)
63
+ if err != nil {
64
+ // Unknown log level
65
+ }
66
+
67
+ logger := picolo.New (picolo.WithLevel (lvl))
68
+ logger.Infof (" One two three" )
69
+ // ...
70
+ ```
Original file line number Diff line number Diff line change @@ -13,17 +13,19 @@ type Level int
13
13
14
14
const (
15
15
// Log levels
16
- LevelDebug Level = iota // Debug level
17
- LevelInfo // Info level
18
- LevelWarning // Warning level
19
- LevelError // Error level
16
+ LevelDebug Level = iota + 1 // Debug level
17
+ LevelInfo // Info level
18
+ LevelWarning // Warning level
19
+ LevelError // Error level
20
20
)
21
21
22
22
const DefaultTimeFormat = "2006-01-02 15:04:05.000"
23
23
24
+ var ErrUnknownLevel = fmt .Errorf ("Unknown log level" )
25
+
24
26
// Logger is our logger struct
25
27
type Logger struct {
26
- mu sync.Mutex // used to synchronize output as well
28
+ mu sync.Mutex // used to synchronize output as well
27
29
opts * options
28
30
}
29
31
@@ -167,3 +169,19 @@ func (l Level) String() string {
167
169
return "UNKNOWN"
168
170
}
169
171
}
172
+
173
+ // LevelFromString returns the log level from string representation
174
+ func LevelFromString (s string ) (Level , error ) {
175
+ switch s {
176
+ case "debug" :
177
+ return LevelDebug , nil
178
+ case "info" :
179
+ return LevelInfo , nil
180
+ case "warning" :
181
+ return LevelWarning , nil
182
+ case "error" :
183
+ return LevelError , nil
184
+ default :
185
+ return 0 , ErrUnknownLevel
186
+ }
187
+ }
You can’t perform that action at this time.
0 commit comments