2024-11-06 16:01:38 -08:00
|
|
|
package logging
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"log/slog"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
|
|
|
|
|
"gitlab.com/whom/bingobot/internal/config"
|
|
|
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Logger struct {
|
|
|
|
|
*slog.Logger
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var (
|
2024-11-08 14:33:57 -08:00
|
|
|
logger Logger
|
2024-11-06 16:01:38 -08:00
|
|
|
)
|
|
|
|
|
|
2024-11-13 22:03:57 +00:00
|
|
|
func Init() {
|
|
|
|
|
cfg := config.Get()
|
2024-11-06 16:01:38 -08:00
|
|
|
|
|
|
|
|
lj := &lumberjack.Logger{
|
2024-11-13 22:03:57 +00:00
|
|
|
Filename: filepath.Join(cfg.LogDir, cfg.LogFile),
|
|
|
|
|
MaxSize: cfg.LogMaxSizeMB,
|
|
|
|
|
MaxBackups: cfg.LogMaxBackups,
|
|
|
|
|
MaxAge: cfg.LogMaxAgeDays,
|
|
|
|
|
Compress: cfg.LogCompression,
|
2024-11-06 16:01:38 -08:00
|
|
|
}
|
|
|
|
|
|
2024-11-08 14:33:57 -08:00
|
|
|
logger = Logger{
|
2024-11-06 16:01:38 -08:00
|
|
|
slog.New(
|
|
|
|
|
slog.NewJSONHandler(lj, &slog.HandlerOptions{
|
2024-11-13 22:03:57 +00:00
|
|
|
AddSource: cfg.LogAddSource,
|
2024-11-06 16:01:38 -08:00
|
|
|
}),
|
|
|
|
|
),
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-11-08 14:33:57 -08:00
|
|
|
|
2024-11-08 17:07:55 -08:00
|
|
|
func Debug(msg string, args ...any) {
|
|
|
|
|
logger.Debug(msg, args...)
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-08 14:33:57 -08:00
|
|
|
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...)
|
|
|
|
|
}
|