-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.go
More file actions
112 lines (97 loc) · 2.64 KB
/
logger.go
File metadata and controls
112 lines (97 loc) · 2.64 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package multi
import (
"fmt"
"log"
)
const (
INFO = "info"
DEBUG = "debug"
WARN = "warn"
ERROR = "error"
TRACE = "trace"
PLAIN = "plain"
HTML = "html"
COLOR = "color"
)
type colorRegistry struct {
Red string
Green string
Blue string
Yellow string
Magento string
}
func NewLogger(mode, level string) *Logger {
var cr *colorRegistry
switch mode {
case "color":
cr = &colorRegistry{
Red: "\x1b[1;31m [%s] \x1b[0m\t: %s",
Green: "\x1b[1;36m [%s] \x1b[0m\t: %s",
Blue: "\x1b[1;32m [%s] \x1b[0m\t: %s",
Yellow: "\x1b[1;33m [%s] \x1b[0m\t: %s",
Magento: "\x1b[1;35m [%s] \x1b[0m\t: %s",
}
break
case "html":
cr = &colorRegistry{
Red: "<span style=\"color:#eb4034\"> [%s]</span> : %s</br>",
Green: "<span style=\"color:#34eb40\"> [%s]</span> : %s</br>",
Blue: "<span style=\"color:#3498eb\"> [%s]</span> : %s</br>",
Yellow: "<span style=\"color:#eba434\"> [%s]</span> : %s</br>",
Magento: "<span style=\"color:#d234eb\"> [%s]</span> : %s</br>",
}
break
case "plain":
cr = &colorRegistry{
Red: " [%s]\t: %s",
Green: " [%s]\t: %s",
Blue: " [%s]\t: %s",
Yellow: " [%s]\t: %s",
Magento: " [%s]\t: %s",
}
break
}
return &Logger{Level: level, Colors: cr}
}
type Logger struct {
Level string
Colors *colorRegistry
}
func (logger Logger) Debug(message string) {
if logger.Level == DEBUG || logger.Level == TRACE {
log.Printf(logger.Colors.Green, "DEBUG", message)
}
}
func (logger Logger) Error(message string) {
log.Printf(logger.Colors.Red, "ERROR", message)
}
func (logger Logger) Warn(message string) {
if logger.Level == WARN || logger.Level == DEBUG || logger.Level == INFO || logger.Level == TRACE {
log.Printf(logger.Colors.Yellow, "WARN", message)
}
}
func (logger Logger) Trace(message string) {
if logger.Level == TRACE {
log.Printf(logger.Colors.Magento, "TRACE", message)
}
}
func (logger Logger) Info(message string) {
if logger.Level == INFO || logger.Level == DEBUG || logger.Level == TRACE {
log.Printf(logger.Colors.Blue, "INFO", message)
}
}
func (logger Logger) Errorf(msg string, val ...interface{}) {
logger.Error(fmt.Sprintf(msg, val...))
}
func (logger Logger) Debugf(msg string, val ...interface{}) {
logger.Debug(fmt.Sprintf(msg, val...))
}
func (logger Logger) Warnf(msg string, val ...interface{}) {
logger.Warn(fmt.Sprintf(msg, val...))
}
func (logger Logger) Tracef(msg string, val ...interface{}) {
logger.Trace(fmt.Sprintf(msg, val...))
}
func (logger Logger) Infof(msg string, val ...interface{}) {
logger.Info(fmt.Sprintf(msg, val...))
}