mirror of https://gitee.com/godoos/godoos.git
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
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
|
|
}
|
|
}
|
|
|