From 5461efc826952833fcdecca5d3daa3ee70423a31 Mon Sep 17 00:00:00 2001 From: Jeroen Wijenbergh Date: Fri, 1 Aug 2025 15:10:41 +0200 Subject: Client + Log: Implement a log rotater --- internal/log/log.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'internal/log/log.go') diff --git a/internal/log/log.go b/internal/log/log.go index 53671b3..6a48ad7 100644 --- a/internal/log/log.go +++ b/internal/log/log.go @@ -14,25 +14,22 @@ import ( // This can be done as this function sets the logger as the default logger in slog // It returns the log file and the error // This log file should be closed at the end -func Init(lvl slog.Level, dir string) (*os.File, error) { +func Init(lvl slog.Level, dir string) (*FileRotater, error) { err := os.MkdirAll(dir, 0o700) if err != nil { return nil, err } name := path.Join(dir, "log") - f, err := os.OpenFile( - name, - os.O_RDWR|os.O_CREATE|os.O_APPEND, - 0o666, - ) + + fr, err := NewFileRotater(name) if err != nil { - return nil, fmt.Errorf("failed creating log: %w", err) + return nil, fmt.Errorf("failed creating log rotater: %w", err) } - multi := io.MultiWriter(os.Stdout, f) + multi := io.MultiWriter(os.Stdout, fr) handler := slog.NewTextHandler(multi, &slog.HandlerOptions{ Level: lvl, }) logger := slog.New(handler) slog.SetDefault(logger) - return f, nil + return fr, nil } -- cgit v1.2.3