chore: add storage logger and handler in /int

This commit is contained in:
d3m0k1d
2026-02-03 18:03:53 +03:00
parent c2bceaf479
commit a56fe30f83
9 changed files with 128 additions and 6 deletions

View File

@@ -0,0 +1,45 @@
package logger
import (
"io"
"log/slog"
"os"
"path/filepath"
"gopkg.in/natefinch/lumberjack.v2"
)
type Logger struct {
*slog.Logger
}
func New(debug bool) *Logger {
logDir := "/var/log/banforge"
if err := os.MkdirAll(logDir, 0750); err != nil {
return nil
}
fileWriter := &lumberjack.Logger{
Filename: filepath.Join(logDir, "banforge.log"),
MaxSize: 500,
MaxBackups: 3,
MaxAge: 28,
Compress: true,
}
var level slog.Level
if debug {
level = slog.LevelDebug
} else {
level = slog.LevelInfo
}
multiWriter := io.MultiWriter(fileWriter, os.Stdout)
handler := slog.NewTextHandler(multiWriter, &slog.HandlerOptions{
Level: level,
})
return &Logger{
Logger: slog.New(handler),
}
}