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

View File

@@ -1,46 +0,0 @@
package logger
import (
"io"
"os"
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
)
func Init() {
levelStr := os.Getenv("LOG_LEVEL")
level, err := logrus.ParseLevel(levelStr)
if err != nil {
level = logrus.InfoLevel
}
logrus.SetLevel(level)
if level == logrus.DebugLevel {
gin.SetMode(gin.DebugMode)
} else {
gin.SetMode(gin.ReleaseMode)
gin.DisableConsoleColor()
}
logrus.SetFormatter(&logrus.JSONFormatter{
TimestampFormat: "2006-01-02 15:04:05",
})
logrus.SetReportCaller(true)
file, err := os.OpenFile("app.log", os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666)
if err != nil {
logrus.SetOutput(os.Stdout)
logrus.Errorf("Error to create log file: %v", err)
} else {
logrus.SetOutput(io.MultiWriter(os.Stdout, file))
}
logrus.RegisterExitHandler(func() {
if file != nil {
file.Sync()
file.Close()
}
})
}

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