@@ -3,13 +3,11 @@ package core
3
3
import (
4
4
"fmt"
5
5
"github.com/flipped-aurora/gin-vue-admin/server/core/internal"
6
- "os"
7
- "time"
8
-
9
6
"github.com/flipped-aurora/gin-vue-admin/server/global"
10
7
"github.com/flipped-aurora/gin-vue-admin/server/utils"
11
8
"go.uber.org/zap"
12
9
"go.uber.org/zap/zapcore"
10
+ "os"
13
11
)
14
12
15
13
// Zap 获取 zap.Logger
@@ -20,93 +18,11 @@ func Zap() (logger *zap.Logger) {
20
18
_ = os .Mkdir (global .GVA_CONFIG .Zap .Director , os .ModePerm )
21
19
}
22
20
23
- cores := make ([]zapcore.Core , 0 , 7 )
24
- debugLevel := getEncoderCore (zap .DebugLevel )
25
- infoLevel := getEncoderCore (zap .InfoLevel )
26
- warnLevel := getEncoderCore (zap .WarnLevel )
27
- errorLevel := getEncoderCore (zap .ErrorLevel )
28
- dPanicLevel := getEncoderCore (zap .DPanicLevel )
29
- panicLevel := getEncoderCore (zap .PanicLevel )
30
- fatalLevel := getEncoderCore (zap .FatalLevel )
31
- switch global .GVA_CONFIG .Zap .Level {
32
- case "debug" , "DEBUG" :
33
- cores = append (cores , debugLevel , infoLevel , warnLevel , errorLevel , dPanicLevel , panicLevel , fatalLevel )
34
- case "info" , "INFO" :
35
- cores = append (cores , infoLevel , warnLevel , errorLevel , dPanicLevel , panicLevel , fatalLevel )
36
- case "warn" , "WARN" :
37
- cores = append (cores , warnLevel , errorLevel , dPanicLevel , panicLevel , fatalLevel )
38
- case "error" , "ERROR" :
39
- cores = append (cores , errorLevel , dPanicLevel , panicLevel , fatalLevel )
40
- case "dpanic" , "DPANIC" :
41
- cores = append (cores , dPanicLevel , panicLevel , fatalLevel )
42
- case "panic" , "PANIC" :
43
- cores = append (cores , panicLevel , fatalLevel )
44
- case "fatal" , "FATAL" :
45
- cores = append (cores , panicLevel , fatalLevel )
46
- default :
47
- cores = append (cores , debugLevel , infoLevel , warnLevel , errorLevel , dPanicLevel , panicLevel , fatalLevel )
48
- }
49
- logger = zap .New (zapcore .NewTee (cores ... ), zap .AddCaller ())
21
+ cores := internal .Zap .GetZapCores ()
22
+ logger = zap .New (zapcore .NewTee (cores ... ))
50
23
51
24
if global .GVA_CONFIG .Zap .ShowLine {
52
25
logger = logger .WithOptions (zap .AddCaller ())
53
26
}
54
27
return logger
55
28
}
56
-
57
- // getEncoderConfig 获取zapcore.EncoderConfig
58
- // Author [SliverHorn](https://github.com/SliverHorn)
59
- func getEncoderConfig () (config zapcore.EncoderConfig ) {
60
- config = zapcore.EncoderConfig {
61
- MessageKey : "message" ,
62
- LevelKey : "level" ,
63
- TimeKey : "time" ,
64
- NameKey : "logger" ,
65
- CallerKey : "caller" ,
66
- StacktraceKey : global .GVA_CONFIG .Zap .StacktraceKey ,
67
- LineEnding : zapcore .DefaultLineEnding ,
68
- EncodeLevel : zapcore .LowercaseLevelEncoder ,
69
- EncodeTime : CustomTimeEncoder ,
70
- EncodeDuration : zapcore .SecondsDurationEncoder ,
71
- EncodeCaller : zapcore .FullCallerEncoder ,
72
- }
73
- switch {
74
- case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseLevelEncoder" : // 小写编码器(默认)
75
- config .EncodeLevel = zapcore .LowercaseLevelEncoder
76
- case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseColorLevelEncoder" : // 小写编码器带颜色
77
- config .EncodeLevel = zapcore .LowercaseColorLevelEncoder
78
- case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalLevelEncoder" : // 大写编码器
79
- config .EncodeLevel = zapcore .CapitalLevelEncoder
80
- case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalColorLevelEncoder" : // 大写编码器带颜色
81
- config .EncodeLevel = zapcore .CapitalColorLevelEncoder
82
- default :
83
- config .EncodeLevel = zapcore .LowercaseLevelEncoder
84
- }
85
- return config
86
- }
87
-
88
- // getEncoder 获取zapcore.Encoder
89
- // Author [SliverHorn](https://github.com/SliverHorn)
90
- func getEncoder () zapcore.Encoder {
91
- if global .GVA_CONFIG .Zap .Format == "json" {
92
- return zapcore .NewJSONEncoder (getEncoderConfig ())
93
- }
94
- return zapcore .NewConsoleEncoder (getEncoderConfig ())
95
- }
96
-
97
- // getEncoderCore 获取Encoder的zapcore.Core
98
- // Author [SliverHorn](https://github.com/SliverHorn)
99
- func getEncoderCore (level zapcore.Level ) (core zapcore.Core ) {
100
- writer , err := internal .FileRotatelogs .GetWriteSyncer (level .String ()) // 使用file-rotatelogs进行日志分割
101
- if err != nil {
102
- fmt .Printf ("Get Write Syncer Failed err:%v" , err .Error ())
103
- return
104
- }
105
- return zapcore .NewCore (getEncoder (), writer , level )
106
- }
107
-
108
- // CustomTimeEncoder 自定义日志输出时间格式
109
- // Author [SliverHorn](https://github.com/SliverHorn)
110
- func CustomTimeEncoder (t time.Time , enc zapcore.PrimitiveArrayEncoder ) {
111
- enc .AppendString (t .Format (global .GVA_CONFIG .Zap .Prefix + "2006/01/02 - 15:04:05.000" ))
112
- }
0 commit comments