first commit
This commit is contained in:
+44
@@ -0,0 +1,44 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
"os"
|
||||
"sundynix-go/core/internal"
|
||||
"sundynix-go/global"
|
||||
"sundynix-go/utils"
|
||||
)
|
||||
|
||||
// Zap 函数用于初始化并返回一个 zap.Logger 实例。
|
||||
// 该函数会检查日志目录是否存在,如果不存在则创建该目录。
|
||||
// 根据配置中的日志级别,创建对应的 zapcore.Core,并将它们合并为一个 zap.Logger。
|
||||
// 如果配置中启用了显示行号,则会在日志中添加调用者信息。
|
||||
// 返回值:
|
||||
// - logger: 初始化后的 zap.Logger 实例,用于记录日志。
|
||||
func Zap() (logger *zap.Logger) {
|
||||
// 检查日志目录是否存在,如果不存在则创建
|
||||
if ok, _ := utils.PathExist(global.Config.Zap.Director); !ok {
|
||||
fmt.Printf("日志目录 %v 不存在,创建中...\n", global.Config.Zap.Director)
|
||||
_ = os.Mkdir(global.Config.Zap.Director, os.ModePerm)
|
||||
}
|
||||
|
||||
// 获取配置中的日志级别,并初始化对应的 zapcore.Core
|
||||
levels := global.Config.Zap.Levels()
|
||||
length := len(levels)
|
||||
cores := make([]zapcore.Core, 0, length)
|
||||
for i := 0; i < length; i++ {
|
||||
core := internal.NewZapCore(levels[i])
|
||||
cores = append(cores, core)
|
||||
}
|
||||
|
||||
// 将所有的 zapcore.Core 合并为一个 zap.Logger
|
||||
logger = zap.New(zapcore.NewTee(cores...))
|
||||
|
||||
// 如果配置中启用了显示行号,则添加调用者信息
|
||||
if global.Config.Zap.ShowLine {
|
||||
logger = logger.WithOptions(zap.AddCaller())
|
||||
}
|
||||
|
||||
return logger
|
||||
}
|
||||
Reference in New Issue
Block a user