@@ -31,12 +31,19 @@ import (
31
31
"path/filepath"
32
32
)
33
33
34
- // that will add prefixes to log lines
34
+ type LogLevel int
35
+
36
+ const (
37
+ DEBUG LogLevel = iota
38
+ INFO
39
+ ERROR
40
+ )
41
+
35
42
var (
36
- // logger is a single local logger implementation
37
- logger * log. Logger
38
- sw io.Writer
39
- ew io. Writer
43
+ logger * log. Logger
44
+ sw io. Writer
45
+ ew io.Writer
46
+ logLevel LogLevel = INFO // Default to INFO level
40
47
)
41
48
42
49
// InitLogger sets up a new instance of logger that writes to file and STDOUT
@@ -62,44 +69,52 @@ func InitLogger(fileName string) error {
62
69
return nil
63
70
}
64
71
65
- // Errorln writes a line to STDERR and log file prepending message with ERROR
72
+ func SetLogLevel (level LogLevel ) {
73
+ logLevel = level
74
+ }
75
+
66
76
func Errorln (v ... interface {}) {
77
+ // ERROR level always shows
67
78
logger .SetOutput (ew )
68
79
logger .SetPrefix ("ERROR " )
69
80
logger .Println (v ... )
70
81
}
71
82
72
- // Errorf writes a formatted output to STDERR and log file prepending message with ERROR
73
83
func Errorf (format string , v ... interface {}) {
84
+ // ERROR level always shows
74
85
logger .SetOutput (ew )
75
86
logger .SetPrefix ("ERROR " )
76
87
logger .Printf (format , v ... )
77
88
}
78
89
79
- // Infoln writes a line to STDERR and log file prepending message with INFO
80
90
func Infoln (v ... interface {}) {
81
- logger .SetOutput (sw )
82
- logger .SetPrefix ("INFO " )
83
- logger .Println (v ... )
91
+ if logLevel >= INFO {
92
+ logger .SetOutput (sw )
93
+ logger .SetPrefix ("INFO " )
94
+ logger .Println (v ... )
95
+ }
84
96
}
85
97
86
- // Infof writes a formatted output to STDERR and log file prepending message with INFO
87
98
func Infof (format string , v ... interface {}) {
88
- logger .SetOutput (sw )
89
- logger .SetPrefix ("INFO " )
90
- logger .Printf (format , v ... )
99
+ if logLevel >= INFO {
100
+ logger .SetOutput (sw )
101
+ logger .SetPrefix ("INFO " )
102
+ logger .Printf (format , v ... )
103
+ }
91
104
}
92
105
93
- // Debugln writes a line to STDERR and log file prepending message with DEBUG
94
106
func Debugln (v ... interface {}) {
95
- logger .SetOutput (sw )
96
- logger .SetPrefix ("DEBUG " )
97
- logger .Println (v ... )
107
+ if logLevel <= DEBUG {
108
+ logger .SetOutput (sw )
109
+ logger .SetPrefix ("DEBUG " )
110
+ logger .Println (v ... )
111
+ }
98
112
}
99
113
100
- // Debugf writes a formatted output to STDERR and log file prepending message with DEBUG
101
114
func Debugf (format string , v ... interface {}) {
102
- logger .SetOutput (sw )
103
- logger .SetPrefix ("DEBUG " )
104
- logger .Printf (format , v ... )
105
- }
115
+ if logLevel <= DEBUG {
116
+ logger .SetOutput (sw )
117
+ logger .SetPrefix ("DEBUG " )
118
+ logger .Printf (format , v ... )
119
+ }
120
+ }
0 commit comments