1package log
 2
 3import (
 4	"log/slog"
 5	"sync"
 6
 7	"gopkg.in/natefinch/lumberjack.v2"
 8)
 9
10var initOnce sync.Once
11
12func Init(logFile string, debug bool) {
13	initOnce.Do(func() {
14		logRotator := &lumberjack.Logger{
15			Filename:   logFile,
16			MaxSize:    10,    // Max size in MB
17			MaxBackups: 0,     // Number of backups
18			MaxAge:     30,    // Days
19			Compress:   false, // Enable compression
20		}
21
22		level := slog.LevelInfo
23		if debug {
24			level = slog.LevelDebug
25		}
26
27		logger := slog.NewJSONHandler(logRotator, &slog.HandlerOptions{
28			Level:     level,
29			AddSource: true,
30		})
31
32		slog.SetDefault(slog.New(logger))
33	})
34}