Skip to content

Commit 55f1de0

Browse files
authored
chore: restructure logger (#124)
1 parent 00f22a4 commit 55f1de0

File tree

3 files changed

+126
-102
lines changed

3 files changed

+126
-102
lines changed

utils/logger/levelhandler.go

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package logger
2+
3+
import (
4+
"image/color"
5+
"strconv"
6+
"strings"
7+
8+
"go.uber.org/zap/zapcore"
9+
)
10+
11+
const DeveloperLevel zapcore.Level = -2
12+
13+
func ParseLevel(s string) zapcore.Level {
14+
switch strings.ToLower(s) {
15+
case "dev":
16+
return DeveloperLevel
17+
case "debug":
18+
return zapcore.DebugLevel
19+
case "info":
20+
return zapcore.InfoLevel
21+
case "warn":
22+
return zapcore.WarnLevel
23+
case "error":
24+
return zapcore.ErrorLevel
25+
case "fatal":
26+
return zapcore.FatalLevel
27+
default:
28+
return zapcore.InfoLevel
29+
}
30+
}
31+
32+
func ColorCode(str string, color color.RGBA) string {
33+
return startColor(color) + str + endColor()
34+
}
35+
36+
func ColorToInt(color color.RGBA) (int, int, int, int) {
37+
r, g, b, a := color.R, color.G, color.B, color.A
38+
39+
red, green, blue, alpha := int(r), int(g), int(b), int(a)
40+
41+
return red, green, blue, alpha
42+
}
43+
44+
func startColor(color color.RGBA) string {
45+
red, green, blue, alpha := ColorToInt(color)
46+
47+
mode := "38;2;"
48+
49+
if alpha >= 255 {
50+
mode = "48;2;"
51+
}
52+
53+
colorStr := strconv.Itoa(red) + ";" + strconv.Itoa(green) + ";" + strconv.Itoa(blue)
54+
55+
return "\x1b[" + mode + colorStr + "m"
56+
}
57+
58+
func endColor() string {
59+
return "\x1b[0m"
60+
}
61+
62+
func LevelString(l zapcore.Level) string {
63+
switch l {
64+
case DeveloperLevel:
65+
return "dev"
66+
default:
67+
return l.CapitalString()
68+
}
69+
}
70+
71+
func CapitalLevel(l zapcore.Level) string {
72+
switch l {
73+
case DeveloperLevel:
74+
return ColorCode("DEV ", color.RGBA{
75+
R: 95, G: 175, B: 135,
76+
})
77+
default:
78+
return l.CapitalString()
79+
}
80+
}
81+
82+
func CustomEncodeLevel(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
83+
switch l {
84+
case DeveloperLevel:
85+
enc.AppendString(CapitalLevel(l))
86+
default:
87+
zapcore.CapitalColorLevelEncoder(l, enc)
88+
}
89+
}

utils/logger/levels.go

Lines changed: 31 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,51 @@
11
package logger
22

3-
import (
4-
"image/color"
5-
"strconv"
6-
"strings"
3+
import "go.uber.org/zap/zapcore"
74

8-
"go.uber.org/zap/zapcore"
9-
)
5+
func Dev(data ...any) {
6+
ok := logger.Check(DeveloperLevel, Format(data...))
107

11-
const DeveloperLevel zapcore.Level = -2
12-
13-
func ParseLevel(s string) zapcore.Level {
14-
switch strings.ToLower(s) {
15-
case "dev":
16-
return DeveloperLevel
17-
case "debug":
18-
return zapcore.DebugLevel
19-
case "info":
20-
return zapcore.InfoLevel
21-
case "warn":
22-
return zapcore.WarnLevel
23-
case "error":
24-
return zapcore.ErrorLevel
25-
case "fatal":
26-
return zapcore.FatalLevel
27-
default:
28-
return zapcore.InfoLevel
8+
if ok != nil {
9+
ok.Write()
2910
}
3011
}
3112

32-
func ColorCode(str string, color color.RGBA) string {
33-
return startColor(color) + str + endColor()
13+
func Debug(data ...any) {
14+
logger.Debug(Format(data...))
3415
}
3516

36-
func ColorToInt(color color.RGBA) (int, int, int, int) {
37-
r, g, b, a := color.R, color.G, color.B, color.A
38-
39-
red, green, blue, alpha := int(r), int(g), int(b), int(a)
40-
41-
return red, green, blue, alpha
17+
func Info(data ...any) {
18+
logger.Info(Format(data...))
4219
}
4320

44-
func startColor(color color.RGBA) string {
45-
red, green, blue, alpha := ColorToInt(color)
46-
47-
mode := "38;2;"
48-
49-
if alpha >= 255 {
50-
mode = "48;2;"
51-
}
52-
53-
colorStr := strconv.Itoa(red) + ";" + strconv.Itoa(green) + ";" + strconv.Itoa(blue)
54-
55-
return "\x1b[" + mode + colorStr + "m"
21+
func Warn(data ...any) {
22+
logger.Warn(Format(data...))
5623
}
5724

58-
func endColor() string {
59-
return "\x1b[0m"
25+
func Error(data ...any) {
26+
logger.Error(Format(data...))
6027
}
6128

62-
func LevelString(l zapcore.Level) string {
63-
switch l {
64-
case DeveloperLevel:
65-
return "dev"
66-
default:
67-
return l.CapitalString()
68-
}
29+
func Fatal(data ...any) {
30+
logger.Fatal(Format(data...))
6931
}
7032

71-
func CapitalLevel(l zapcore.Level) string {
72-
switch l {
73-
case DeveloperLevel:
74-
return ColorCode("DEV ", color.RGBA{
75-
R: 95, G: 175, B: 135,
76-
})
77-
default:
78-
return l.CapitalString()
79-
}
33+
func IsDev() bool {
34+
return logger.Level().Enabled(DeveloperLevel)
8035
}
8136

82-
func CustomEncodeLevel(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
83-
switch l {
84-
case DeveloperLevel:
85-
enc.AppendString(CapitalLevel(l))
86-
default:
87-
zapcore.CapitalColorLevelEncoder(l, enc)
88-
}
37+
func IsDebug() bool {
38+
return logger.Level().Enabled(zapcore.DebugLevel)
39+
}
40+
func IsInfo() bool {
41+
return logger.Level().Enabled(zapcore.InfoLevel)
42+
}
43+
func IsWarn() bool {
44+
return logger.Level().Enabled(zapcore.WarnLevel)
45+
}
46+
func IsError() bool {
47+
return logger.Level().Enabled(zapcore.ErrorLevel)
8948
}
49+
func IsFatal() bool {
50+
return logger.Level().Enabled(zapcore.FatalLevel)
51+
}

utils/logger/logger.go

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,10 @@ import (
1111
"go.uber.org/zap/zapcore"
1212
)
1313

14-
var _log *zap.Logger
1514
var _logLevel = ""
1615

16+
var logger *zap.Logger
17+
1718
func Init(level string) {
1819
_logLevel = strings.ToLower(level)
1920

@@ -43,10 +44,10 @@ func Init(level string) {
4344

4445
var err error
4546

46-
_log, err = cfg.Build(zap.AddCaller(), zap.AddCallerSkip(1))
47+
logger, err = cfg.Build(zap.AddCaller(), zap.AddCallerSkip(1))
4748

4849
if err != nil {
49-
fmt.Println("Encountered Error during Log.Init(): ", err.Error())
50+
fmt.Println("Encountered Error during Logger Init: ", err.Error())
5051
}
5152
}
5253

@@ -75,37 +76,9 @@ func Format(data ...any) string {
7576
}
7677

7778
func Level() string {
78-
return LevelString(_log.Level())
79-
}
80-
81-
func Info(data ...any) {
82-
_log.Info(Format(data...))
83-
}
84-
85-
func Debug(data ...any) {
86-
_log.Debug(Format(data...))
87-
}
88-
89-
func Dev(data ...any) {
90-
ok := _log.Check(DeveloperLevel, Format(data...))
91-
92-
if ok != nil {
93-
ok.Write()
94-
}
95-
}
96-
97-
func Error(data ...any) {
98-
_log.Error(Format(data...))
99-
}
100-
101-
func Fatal(data ...any) {
102-
_log.Fatal(Format(data...))
103-
}
104-
105-
func Warn(data ...any) {
106-
_log.Warn(Format(data...))
79+
return LevelString(logger.Level())
10780
}
10881

10982
func Sync() {
110-
_ = _log.Sync()
83+
logger.Sync()
11184
}

0 commit comments

Comments
 (0)