Change logrus to slog

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2026-01-21 09:52:54 +08:00
parent fd262239e4
commit b7e6009706
8 changed files with 85 additions and 83 deletions

47
logger/slog.go Normal file
View File

@@ -0,0 +1,47 @@
package logger
import (
"io"
"log/slog"
"os"
"strings"
)
func Init() {
levelStr := strings.ToLower(os.Getenv("LOG_LEVEL"))
var level slog.Level
switch levelStr {
case "debug":
level = slog.LevelDebug
case "warn":
level = slog.LevelWarn
case "error":
level = slog.LevelError
default:
level = slog.LevelInfo
}
file, err := os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666)
var writer io.Writer = os.Stdout
if err != nil {
slog.Error("Error to create log file", "err", err)
} else {
writer = io.MultiWriter(os.Stdout, file)
}
opts := &slog.HandlerOptions{
Level: level,
AddSource: true,
ReplaceAttr: func(groups []string, a slog.Attr) slog.Attr {
if a.Key == slog.TimeKey {
return slog.String(a.Key, a.Value.Time().Format("2006-01-02 15:04:05"))
}
return a
},
}
handler := slog.NewJSONHandler(writer, opts)
logger := slog.New(handler)
slog.SetDefault(logger)
}