-
Notifications
You must be signed in to change notification settings - Fork 3
/
logger.go
70 lines (55 loc) · 1.4 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
package galaxylib
import (
"fmt"
"time"
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
)
type GalaxyLog struct {
Logger *logrus.Logger
}
var DefaultGalaxyLog = &GalaxyLog{}
var GalaxyLogger *logrus.Logger
//var GalaxyLog *logrus.Logger
func (g *GalaxyLog) ConfigLogger() *logrus.Logger {
if GalaxyLogger != nil {
return GalaxyLogger
}
pathMap := lfshook.PathMap{
logrus.InfoLevel: "./log/info/info.log",
logrus.ErrorLevel: "./log/error/error.log",
logrus.DebugLevel: "./log/debug/debug.log",
logrus.FatalLevel: "./log/fatal/fatal.log",
logrus.WarnLevel: "./log/warn/warn.log",
}
//infoWriter := buildWriter()
// if err != nil {
// fmt.Println(err)
// }
logrus.AddHook(lfshook.NewHook(
lfshook.WriterMap{
logrus.InfoLevel: buildWriter(pathMap[logrus.InfoLevel]),
logrus.ErrorLevel: buildWriter(pathMap[logrus.ErrorLevel]),
logrus.WarnLevel: buildWriter(pathMap[logrus.WarnLevel]),
},
&logrus.JSONFormatter{},
))
GalaxyLogger = logrus.New()
GalaxyLogger.Hooks.Add(lfshook.NewHook(
pathMap,
&logrus.JSONFormatter{},
))
return GalaxyLogger
}
func buildWriter(path string) *rotatelogs.RotateLogs {
writer, err := rotatelogs.New(
path+".%Y%m%d%H%M",
rotatelogs.WithLinkName(path),
rotatelogs.WithRotationTime(time.Duration(24)*time.Hour),
)
if err != nil {
fmt.Println(err)
}
return writer
}