u
This commit is contained in:
1 parent
f08db1959b
commit
c6671c8a8c
68 files changed
+13904
-1131
No files matched your search
@@ -45,52 +45,86 @@ func Init(cfg Config) {
|
||||
|
||||
level := parseLevel(cfg.Level)
|
||||
|
||||
// ======================
|
||||
// encoder 配置
|
||||
// ======================
|
||||
|
||||
encoderConfig := zapcore.EncoderConfig{
|
||||
TimeKey: "time",
|
||||
LevelKey: "level",
|
||||
MessageKey: "msg",
|
||||
CallerKey: "caller",
|
||||
EncodeLevel: zapcore.CapitalLevelEncoder,
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
EncodeCaller: zapcore.ShortCallerEncoder,
|
||||
}
|
||||
|
||||
encoder := zapcore.NewJSONEncoder(encoderConfig)
|
||||
// 👉 文件 JSON encoder
|
||||
jsonEncoder := zapcore.NewJSONEncoder(func() zapcore.EncoderConfig {
|
||||
cfg := encoderConfig
|
||||
cfg.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
cfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
||||
return cfg
|
||||
}())
|
||||
|
||||
// 👉 控制台 encoder(可读)
|
||||
consoleEncoder := zapcore.NewConsoleEncoder(func() zapcore.EncoderConfig {
|
||||
cfg := encoderConfig
|
||||
cfg.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
||||
cfg.EncodeTime = zapcore.TimeEncoderOfLayout("2006-01-02 15:04:05")
|
||||
return cfg
|
||||
}())
|
||||
|
||||
// ======================
|
||||
// writer
|
||||
// ======================
|
||||
|
||||
// 控制台
|
||||
consoleWriter := zapcore.AddSync(os.Stdout)
|
||||
|
||||
// 文件 writer(按天)
|
||||
infoWriter := getWriter(cfg, "info")
|
||||
errorWriter := getWriter(cfg, "error")
|
||||
|
||||
// info core
|
||||
// ======================
|
||||
// core
|
||||
// ======================
|
||||
|
||||
// 控制台(所有级别)
|
||||
consoleCore := zapcore.NewCore(
|
||||
consoleEncoder,
|
||||
consoleWriter,
|
||||
level,
|
||||
)
|
||||
|
||||
// info 文件
|
||||
infoCore := zapcore.NewCore(
|
||||
encoder,
|
||||
zapcore.NewMultiWriteSyncer(consoleWriter, infoWriter),
|
||||
jsonEncoder,
|
||||
infoWriter,
|
||||
zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
|
||||
return lvl < zapcore.ErrorLevel && lvl >= level
|
||||
}),
|
||||
)
|
||||
|
||||
// error core
|
||||
// error 文件
|
||||
errorCore := zapcore.NewCore(
|
||||
encoder,
|
||||
zapcore.NewMultiWriteSyncer(consoleWriter, errorWriter),
|
||||
jsonEncoder,
|
||||
errorWriter,
|
||||
zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
|
||||
return lvl >= zapcore.ErrorLevel
|
||||
}),
|
||||
)
|
||||
|
||||
core := zapcore.NewTee(infoCore, errorCore)
|
||||
core := zapcore.NewTee(
|
||||
consoleCore,
|
||||
infoCore,
|
||||
errorCore,
|
||||
)
|
||||
|
||||
Log = zap.New(
|
||||
core,
|
||||
zap.AddCaller(), // 打印调用位置
|
||||
zap.AddCallerSkip(1), // 跳过封装层
|
||||
)
|
||||
}
|
||||
|
||||
// ======================
|
||||
// Daily Writer(核心)
|
||||
// Daily Writer(按天切割)
|
||||
// ======================
|
||||
|
||||
type DailyWriter struct {
|
||||
@@ -110,7 +144,6 @@ func newDailyWriter(cfg Config, level string) *DailyWriter {
|
||||
func (w *DailyWriter) Write(p []byte) (n int, err error) {
|
||||
today := time.Now().Format("2006-01-02")
|
||||
|
||||
// 跨天自动切换
|
||||
if w.log == nil || w.date != today {
|
||||
dir := filepath.Join(w.cfg.Dir, w.level)
|
||||
_ = os.MkdirAll(dir, os.ModePerm)
|
||||
@@ -172,7 +205,6 @@ func SetTraceID(c fiber.Ctx, traceID string) {
|
||||
return
|
||||
}
|
||||
|
||||
// context
|
||||
ctx := context.WithValue(c.Context(), TraceIDKey, traceID)
|
||||
c.SetContext(ctx)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user