@@ -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
47
logger/slog.go
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user