@@ -2,11 +2,29 @@ package log
22
33import (
44 golog "log"
5+ "strings"
56)
67
78// Level Log level to use in `SetLevel()` function
89type Level int
910
11+ func (l Level ) String () string {
12+ if l == LevelFatal {
13+ return "FATAL"
14+ } else if l == LevelError {
15+ return "ERROR"
16+ } else if l == LevelWarn {
17+ return "WARN"
18+ } else if l == LevelInfo {
19+ return "INFO"
20+ } else if l == LevelDebug {
21+ return "DEBUG"
22+ } else if l == LevelTrace {
23+ return "TRACE"
24+ }
25+ return "UNKNOWN"
26+ }
27+
1028const (
1129 // LevelFatal to be used with `SetLevel(LevelFatal)`, to set log level to only Fatal calls
1230 LevelFatal Level = iota
@@ -38,6 +56,38 @@ func SetLevel(level Level) {
3856 logLevel = level
3957}
4058
59+ // ParseLevel takes as string and return the corresponding level. The strLevel argument
60+ // is case insensitive. The strLevel argument just needs to begin with one of the logging
61+ // level names.
62+ // Logging level names are TRACE, DEBUG, INFO, WARN, ERROR and FATAL
63+ //
64+ // e.g.: ParseLevel("debug") // LevelDebug
65+ // e.g.: ParseLevel("DEBUG") // LevelDebug
66+ // e.g.: ParseLevel("debugging") // LevelDebug
67+ // e.g.: ParseLevel("warn") // LevelWarn
68+ // e.g.: ParseLevel("warni") // LevelWarn
69+ // e.g.: ParseLevel("warnin") // LevelWarn
70+ // e.g.: ParseLevel("warning") // LevelWarn
71+ // e.g.: ParseLevel("WARNING") // LevelWarn
72+ //
73+ func ParseLevel (strLevel string ) Level {
74+ str := strings .ToLower (strLevel )
75+ if strings .HasPrefix (str , "trace" ) {
76+ return LevelTrace
77+ } else if strings .HasPrefix (str , "debug" ) {
78+ return LevelDebug
79+ } else if strings .HasPrefix (str , "info" ) {
80+ return LevelInfo
81+ } else if strings .HasPrefix (str , "warn" ) {
82+ return LevelWarn
83+ } else if strings .HasPrefix (str , "error" ) {
84+ return LevelError
85+ } else if strings .HasPrefix (str , "fatal" ) {
86+ return LevelFatal
87+ }
88+ return LevelInfo
89+ }
90+
4191// Fatal is equivalent to Print() followed by a call to os.Exit(1).
4292func Fatal (v ... interface {}) {
4393 golog .Fatal (v ... )
0 commit comments