@@ -3,13 +3,11 @@ package core
33import (
44 "fmt"
55 "github.com/flipped-aurora/gin-vue-admin/server/core/internal"
6- "os"
7- "time"
8-
96 "github.com/flipped-aurora/gin-vue-admin/server/global"
107 "github.com/flipped-aurora/gin-vue-admin/server/utils"
118 "go.uber.org/zap"
129 "go.uber.org/zap/zapcore"
10+ "os"
1311)
1412
1513// Zap 获取 zap.Logger
@@ -20,93 +18,11 @@ func Zap() (logger *zap.Logger) {
2018 _ = os .Mkdir (global .GVA_CONFIG .Zap .Director , os .ModePerm )
2119 }
2220
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 ... ))
5023
5124 if global .GVA_CONFIG .Zap .ShowLine {
5225 logger = logger .WithOptions (zap .AddCaller ())
5326 }
5427 return logger
5528}
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