package logging import ( "log/slog" "path/filepath" "gitlab.com/whom/bingobot/internal/config" "gopkg.in/natefinch/lumberjack.v2" ) type Logger struct { *slog.Logger } var ( logger Logger ) func Init() { cfg := config.Get() lj := &lumberjack.Logger{ Filename: filepath.Join(cfg.LogDir, cfg.LogFile), MaxSize: cfg.LogMaxSizeMB, MaxBackups: cfg.LogMaxBackups, MaxAge: cfg.LogMaxAgeDays, Compress: cfg.LogCompression, } logger = Logger{ slog.New( slog.NewJSONHandler(lj, &slog.HandlerOptions{ AddSource: cfg.LogAddSource, }), ), } } func Debug(msg string, args ...any) { logger.Debug(msg, args...) } func Info(msg string, args ...any) { logger.Info(msg, args...) } func Warn(msg string, args ...any) { logger.Warn(msg, args...) } func Error(msg string, args ...any) { logger.Error(msg, args...) }