This commit is contained in:
oneao committed 2026-04-06 21:15:11 +08:00
1 parent f08db1959b
commit c6671c8a8c
68 files changed
+13904 -1131

No files matched your search

+48 -16
View File
@@ -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)
}