@@ -13,17 +13,17 @@ import (
1313
1414var (
1515 err error
16- level zapcore.Level
16+ level zapcore.Level
1717 writer zapcore.WriteSyncer
1818)
1919
2020func init () {
21- if ok , _ := utils .PathExists (global .GVA_CONFIG .Zap .Director ); ! ok { // 判断是否有logs文件夹
22- fmt .Println ("create logs directory" ) // directory not exist
21+ if ok , _ := utils .PathExists (global .GVA_CONFIG .Zap .Director ); ! ok { // 判断是否有Director文件夹
22+ fmt .Printf ("create %v directory\n " , global . GVA_CONFIG . Zap . Director )
2323 _ = os .Mkdir (global .GVA_CONFIG .Zap .Director , os .ModePerm )
2424 }
2525
26- switch global .GVA_CONFIG .Zap .Level {// 初始化配置文件的Level
26+ switch global .GVA_CONFIG .Zap .Level { // 初始化配置文件的Level
2727 case "debug" :
2828 level = zap .DebugLevel
2929 case "info" :
@@ -32,6 +32,12 @@ func init() {
3232 level = zap .WarnLevel
3333 case "error" :
3434 level = zap .ErrorLevel
35+ case "dpanic" :
36+ level = zap .DPanicLevel
37+ case "panic" :
38+ level = zap .PanicLevel
39+ case "fatal" :
40+ level = zap .FatalLevel
3541 default :
3642 level = zap .InfoLevel
3743 }
@@ -43,23 +49,19 @@ func init() {
4349 }
4450
4551 if level == zap .DebugLevel || level == zap .ErrorLevel {
46- global .GVA_ZAP = zap .New (getEncoderCore (), zap .AddStacktrace (level ))
47- if global .GVA_CONFIG .Zap .ShowLine {
48- global .GVA_ZAP .WithOptions (zap .AddCaller ())
49- }
50- return
52+ global .GVA_LOG = zap .New (getEncoderCore (), zap .AddStacktrace (level ))
53+ } else {
54+ global .GVA_LOG = zap .New (getEncoderCore ())
5155 }
52- global .GVA_ZAP = zap .New (getEncoderCore ())
5356 if global .GVA_CONFIG .Zap .ShowLine {
54- global .GVA_ZAP .WithOptions (zap .AddCaller ())
57+ global .GVA_LOG .WithOptions (zap .AddCaller ())
5558 }
56-
5759}
5860
5961// getWriteSyncer zap logger中加入file-rotatelogs
6062func getWriteSyncer () (zapcore.WriteSyncer , error ) {
6163 fileWriter , err := zaprotatelogs .New (
62- global .GVA_CONFIG .Zap .Director + string (os .PathSeparator )+ "%Y-%m-%d-%H-%M .log" ,
64+ global .GVA_CONFIG .Zap .Director + string (os .PathSeparator )+ "%Y-%m-%d.log" ,
6365 zaprotatelogs .WithLinkName (global .GVA_CONFIG .Zap .LinkName ),
6466 zaprotatelogs .WithMaxAge (7 * 24 * time .Hour ),
6567 zaprotatelogs .WithRotationTime (24 * time .Hour ),
@@ -78,18 +80,41 @@ func getEncoderConfig() (config zapcore.EncoderConfig) {
7880 TimeKey : "time" ,
7981 NameKey : "logger" ,
8082 CallerKey : "caller" ,
81- StacktraceKey : "stacktrace" ,
83+ StacktraceKey : global . GVA_CONFIG . Zap . StacktraceKey ,
8284 LineEnding : zapcore .DefaultLineEnding ,
83- EncodeLevel : zapcore .CapitalColorLevelEncoder ,
85+ EncodeLevel : zapcore .CapitalLevelEncoder ,
8486 EncodeTime : CustomTimeEncoder ,
8587 EncodeDuration : zapcore .SecondsDurationEncoder ,
8688 EncodeCaller : zapcore .FullCallerEncoder ,
8789 }
90+ switch {
91+ case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseLevelEncoder" && global .GVA_CONFIG .Zap .Format == "console" : // console小写编码器
92+ config .EncodeLevel = zapcore .LowercaseLevelEncoder
93+ case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseLevelEncoder" && global .GVA_CONFIG .Zap .Format == "json" : // json小写编码器
94+ config .EncodeLevel = zapcore .LowercaseLevelEncoder
95+ case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseColorLevelEncoder" && global .GVA_CONFIG .Zap .Format == "console" : // console小写编码器带颜色
96+ config .EncodeLevel = zapcore .LowercaseColorLevelEncoder
97+ case global .GVA_CONFIG .Zap .EncodeLevel == "LowercaseColorLevelEncoder" && global .GVA_CONFIG .Zap .Format == "json" : // json小写编码器带颜色
98+ config .EncodeLevel = zapcore .LowercaseColorLevelEncoder
99+ case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalLevelEncoder" && global .GVA_CONFIG .Zap .Format == "console" : // console大写编码器
100+ config .EncodeLevel = zapcore .CapitalLevelEncoder
101+ case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalLevelEncoder" && global .GVA_CONFIG .Zap .Format == "json" : // json大写编码器
102+ config .EncodeLevel = zapcore .CapitalLevelEncoder
103+ case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalColorLevelEncoder" && global .GVA_CONFIG .Zap .Format == "console" : // console 大写编码器带颜色
104+ config .EncodeLevel = zapcore .CapitalColorLevelEncoder
105+ case global .GVA_CONFIG .Zap .EncodeLevel == "CapitalColorLevelEncoder" && global .GVA_CONFIG .Zap .Format == "json" : // json 大写编码器带颜色
106+ config .EncodeLevel = zapcore .CapitalColorLevelEncoder
107+ default :
108+ config .EncodeLevel = zapcore .LowercaseLevelEncoder
109+ }
88110 return config
89111}
90112
91113// getEncoder 获取zapcore.Encoder
92114func getEncoder () zapcore.Encoder {
115+ if global .GVA_CONFIG .Zap .Format == "json" {
116+ return zapcore .NewJSONEncoder (getEncoderConfig ())
117+ }
93118 return zapcore .NewConsoleEncoder (getEncoderConfig ())
94119}
95120
@@ -100,5 +125,5 @@ func getEncoderCore() (core zapcore.Core) {
100125
101126// 自定义日志输出时间格式
102127func CustomTimeEncoder (t time.Time , enc zapcore.PrimitiveArrayEncoder ) {
103- enc .AppendString (t .Format (global .GVA_CONFIG .Zap .Prefix + "2006/01/02 - 15:04:05.000" ))
128+ enc .AppendString (t .Format (global .GVA_CONFIG .Zap .Prefix + "2006/01/02 - 15:04:05.000" ))
104129}
0 commit comments