-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.go
74 lines (57 loc) · 1.27 KB
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package logger
import (
"fmt"
"github.com/fatih/color"
)
const (
// InfoLevel will be shown
InfoLevel = 0b0001
// LogLevel will be shown
LogLevel = 0b0010
// WarnLevel will be shown
WarnLevel = 0b0100
// CriticalLevel will be shown
CriticalLevel = 0b1000
// AllLevel will be shown
AllLevel = 0b1111
)
var logLevel int = 0
// SetLogLevel sets level
func SetLogLevel(level int) {
logLevel = level
}
// Info as [INFO]prefix:message
func Info(prefix string, message string) string {
msg := _log("INFO", prefix, message)
if logLevel&InfoLevel != 0 {
color.Cyan(msg)
}
return msg
}
// Log as [LOG]prefix:message
func Log(prefix string, message string) string {
msg := _log("LOG", prefix, message)
if logLevel&LogLevel != 0 {
color.White(msg)
}
return msg
}
// Warn as [WARN]prefix:message
func Warn(prefix string, message string) string {
msg := _log("WARN", prefix, message)
if logLevel&WarnLevel != 0 {
color.Yellow(msg)
}
return msg
}
// Critical as [CRITICAL]prefix:message
func Critical(prefix, message string) string {
msg := _log("CRITICAL", prefix, message)
if logLevel&CriticalLevel != 0 {
color.Red(msg)
}
return msg
}
func _log(logType string, prefix string, message string) string {
return fmt.Sprintf("[%s]%s:%s", logType, prefix, message)
}