init: initial commit

This commit is contained in:
Blizzard
2026-02-06 14:44:06 +08:00
commit 3115b58cb2
133 changed files with 25889 additions and 0 deletions
+44
View File
@@ -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
}