|
@@ -13,17 +13,17 @@ import (
|
|
|
|
|
|
var (
|
|
|
err error
|
|
|
- level zapcore.Level
|
|
|
+ level zapcore.Level
|
|
|
writer zapcore.WriteSyncer
|
|
|
)
|
|
|
|
|
|
func init() {
|
|
|
- if ok, _ := utils.PathExists(global.GVA_CONFIG.Zap.Director); !ok {
|
|
|
- fmt.Println("create logs directory")
|
|
|
+ if ok, _ := utils.PathExists(global.GVA_CONFIG.Zap.Director); !ok {
|
|
|
+ fmt.Printf("create %v directory\n", global.GVA_CONFIG.Zap.Director)
|
|
|
_ = os.Mkdir(global.GVA_CONFIG.Zap.Director, os.ModePerm)
|
|
|
}
|
|
|
|
|
|
- switch global.GVA_CONFIG.Zap.Level {
|
|
|
+ switch global.GVA_CONFIG.Zap.Level {
|
|
|
case "debug":
|
|
|
level = zap.DebugLevel
|
|
|
case "info":
|
|
@@ -32,6 +32,12 @@ func init() {
|
|
|
level = zap.WarnLevel
|
|
|
case "error":
|
|
|
level = zap.ErrorLevel
|
|
|
+ case "dpanic":
|
|
|
+ level = zap.DPanicLevel
|
|
|
+ case "panic":
|
|
|
+ level = zap.PanicLevel
|
|
|
+ case "fatal":
|
|
|
+ level = zap.FatalLevel
|
|
|
default:
|
|
|
level = zap.InfoLevel
|
|
|
}
|
|
@@ -43,23 +49,19 @@ func init() {
|
|
|
}
|
|
|
|
|
|
if level == zap.DebugLevel || level == zap.ErrorLevel {
|
|
|
- global.GVA_ZAP = zap.New(getEncoderCore(), zap.AddStacktrace(level))
|
|
|
- if global.GVA_CONFIG.Zap.ShowLine {
|
|
|
- global.GVA_ZAP.WithOptions(zap.AddCaller())
|
|
|
- }
|
|
|
- return
|
|
|
+ global.GVA_LOG = zap.New(getEncoderCore(), zap.AddStacktrace(level))
|
|
|
+ } else {
|
|
|
+ global.GVA_LOG = zap.New(getEncoderCore())
|
|
|
}
|
|
|
- global.GVA_ZAP = zap.New(getEncoderCore())
|
|
|
if global.GVA_CONFIG.Zap.ShowLine {
|
|
|
- global.GVA_ZAP.WithOptions(zap.AddCaller())
|
|
|
+ global.GVA_LOG.WithOptions(zap.AddCaller())
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
|
|
|
func getWriteSyncer() (zapcore.WriteSyncer, error) {
|
|
|
fileWriter, err := zaprotatelogs.New(
|
|
|
- global.GVA_CONFIG.Zap.Director+string(os.PathSeparator)+"%Y-%m-%d-%H-%M.log",
|
|
|
+ global.GVA_CONFIG.Zap.Director+string(os.PathSeparator)+"%Y-%m-%d.log",
|
|
|
zaprotatelogs.WithLinkName(global.GVA_CONFIG.Zap.LinkName),
|
|
|
zaprotatelogs.WithMaxAge(7*24*time.Hour),
|
|
|
zaprotatelogs.WithRotationTime(24*time.Hour),
|
|
@@ -78,18 +80,41 @@ func getEncoderConfig() (config zapcore.EncoderConfig) {
|
|
|
TimeKey: "time",
|
|
|
NameKey: "logger",
|
|
|
CallerKey: "caller",
|
|
|
- StacktraceKey: "stacktrace",
|
|
|
+ StacktraceKey: global.GVA_CONFIG.Zap.StacktraceKey,
|
|
|
LineEnding: zapcore.DefaultLineEnding,
|
|
|
- EncodeLevel: zapcore.CapitalColorLevelEncoder,
|
|
|
+ EncodeLevel: zapcore.CapitalLevelEncoder,
|
|
|
EncodeTime: CustomTimeEncoder,
|
|
|
EncodeDuration: zapcore.SecondsDurationEncoder,
|
|
|
EncodeCaller: zapcore.FullCallerEncoder,
|
|
|
}
|
|
|
+ switch {
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "LowercaseLevelEncoder" && global.GVA_CONFIG.Zap.Format == "console" :
|
|
|
+ config.EncodeLevel = zapcore.LowercaseLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "LowercaseLevelEncoder" && global.GVA_CONFIG.Zap.Format == "json" :
|
|
|
+ config.EncodeLevel = zapcore.LowercaseLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "LowercaseColorLevelEncoder" && global.GVA_CONFIG.Zap.Format == "console":
|
|
|
+ config.EncodeLevel = zapcore.LowercaseColorLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "LowercaseColorLevelEncoder" && global.GVA_CONFIG.Zap.Format == "json":
|
|
|
+ config.EncodeLevel = zapcore.LowercaseColorLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "CapitalLevelEncoder" && global.GVA_CONFIG.Zap.Format == "console":
|
|
|
+ config.EncodeLevel = zapcore.CapitalLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "CapitalLevelEncoder" && global.GVA_CONFIG.Zap.Format == "json":
|
|
|
+ config.EncodeLevel = zapcore.CapitalLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "CapitalColorLevelEncoder" && global.GVA_CONFIG.Zap.Format == "console":
|
|
|
+ config.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
|
+ case global.GVA_CONFIG.Zap.EncodeLevel == "CapitalColorLevelEncoder" && global.GVA_CONFIG.Zap.Format == "json":
|
|
|
+ config.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
|
+ default:
|
|
|
+ config.EncodeLevel = zapcore.LowercaseLevelEncoder
|
|
|
+ }
|
|
|
return config
|
|
|
}
|
|
|
|
|
|
|
|
|
func getEncoder() zapcore.Encoder {
|
|
|
+ if global.GVA_CONFIG.Zap.Format == "json" {
|
|
|
+ return zapcore.NewJSONEncoder(getEncoderConfig())
|
|
|
+ }
|
|
|
return zapcore.NewConsoleEncoder(getEncoderConfig())
|
|
|
}
|
|
|
|
|
@@ -100,5 +125,5 @@ func getEncoderCore() (core zapcore.Core) {
|
|
|
|
|
|
|
|
|
func CustomTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
|
|
- enc.AppendString(t.Format(global.GVA_CONFIG.Zap.Prefix+"2006/01/02 - 15:04:05.000"))
|
|
|
+ enc.AppendString(t.Format(global.GVA_CONFIG.Zap.Prefix + "2006/01/02 - 15:04:05.000"))
|
|
|
}
|