diff options
| author | Jeroen Wijenbergh <jeroen.wijenbergh@geant.org> | 2025-08-01 15:10:41 +0200 |
|---|---|---|
| committer | Jeroen Wijenbergh <jeroen.wijenbergh@geant.org> | 2025-08-25 14:40:18 +0200 |
| commit | 5461efc826952833fcdecca5d3daa3ee70423a31 (patch) | |
| tree | 0d9c71cf09f4a496d28f51409515ee6e79a24071 /internal/log/log.go | |
| parent | 08699e08d39675b76a9b813fd9fe41be6ab47a18 (diff) | |
Client + Log: Implement a log rotater
Diffstat (limited to 'internal/log/log.go')
| -rw-r--r-- | internal/log/log.go | 15 |
1 files changed, 6 insertions, 9 deletions
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 } |
