40 lines
873 B
Go
40 lines
873 B
Go
package common
|
|
|
|
import (
|
|
"github.com/gookit/slog"
|
|
"github.com/gookit/slog/handler"
|
|
"github.com/gookit/slog/rotatefile"
|
|
"github.com/krau/SaveAny-Bot/config"
|
|
)
|
|
|
|
var Log *slog.Logger
|
|
|
|
func InitLogger() {
|
|
if Log != nil {
|
|
return
|
|
}
|
|
slog.DefaultChannelName = "SaveAnyBot"
|
|
Log = slog.New()
|
|
logLevel := slog.LevelByName(config.Cfg.Log.Level)
|
|
logFilePath := config.Cfg.Log.File
|
|
logBackupNum := config.Cfg.Log.BackupCount
|
|
var logLevels []slog.Level
|
|
for _, level := range slog.AllLevels {
|
|
if level <= logLevel {
|
|
logLevels = append(logLevels, level)
|
|
}
|
|
}
|
|
consoleH := handler.NewConsoleHandler(logLevels)
|
|
fileH, err := handler.NewTimeRotateFile(
|
|
logFilePath,
|
|
rotatefile.EveryDay,
|
|
handler.WithLogLevels(slog.AllLevels),
|
|
handler.WithBackupNum(logBackupNum),
|
|
handler.WithBuffSize(0),
|
|
)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
Log.AddHandlers(consoleH, fileH)
|
|
}
|