From a30ef6b27e578a4cf0a674b24f5b52b4c1516c63 Mon Sep 17 00:00:00 2001 From: Jeroen Wijenbergh Date: Thu, 12 Feb 2026 12:34:08 +0100 Subject: All: Rename packages that sound useless or clash with std --- internal/loglevel/loglevel.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 internal/loglevel/loglevel.go (limited to 'internal/loglevel/loglevel.go') diff --git a/internal/loglevel/loglevel.go b/internal/loglevel/loglevel.go new file mode 100644 index 0000000..74dd49f --- /dev/null +++ b/internal/loglevel/loglevel.go @@ -0,0 +1,37 @@ +// Package loglevel implements a basic level based logger +package loglevel + +import ( + "fmt" + "io" + "log/slog" + "os" + "path" +) + +type Logger struct { + fr *FileRotater +} + +func (l *Logger) Init(dir string) (*slog.Logger, error) { + err := os.MkdirAll(dir, 0o700) + if err != nil { + return nil, err + } + name := path.Join(dir, "log") + + fr, err := NewFileRotater(name) + if err != nil { + return nil, fmt.Errorf("failed creating log rotater: %w", err) + } + l.fr = fr + multi := io.MultiWriter(os.Stdout, fr) + handler := slog.NewTextHandler(multi, &slog.HandlerOptions{ + Level: slog.LevelDebug, + }) + return slog.New(handler), nil +} + +func (l *Logger) Close() error { + return l.fr.Close() +} -- cgit v1.2.3