package common import ( "log/slog" "os" "path/filepath" "gopkg.in/natefinch/lumberjack.v2" ) // InitLogger 初始化日志系统 func InitLogger() (slog.Handler, error) { // 根据 Debug 字段判断是否开启文件日志记录 handler, err := NewLogHandler(&Config.Log) if err != nil { return nil, err } return handler, nil } // NewLogHandler 创建一个新的日志处理器 func NewLogHandler(log *Log) (slog.Handler, error) { if Config.Log.WriteFile { logFilePath := filepath.Join("data", log.Path, log.Filename) lumberjackLogger := &lumberjack.Logger{ Filename: logFilePath, MaxSize: log.MaxSize, MaxBackups: log.MaxBackups, MaxAge: log.MaxAge, } // 创建一个 slog.TextHandler,它将使用 lumberjackLogger 作为输出 textHandler := slog.NewTextHandler(lumberjackLogger, nil) return textHandler, nil } else { // 如果不是 debug 模式,使用控制台输出 return slog.NewJSONHandler(os.Stdout, nil), nil } }