You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 lines
987 B

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
}
}