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}