summaryrefslogtreecommitdiff
path: root/internal/log/log.go
diff options
context:
space:
mode:
authorJeroen Wijenbergh <jeroen.wijenbergh@geant.org>2025-08-01 15:10:41 +0200
committerJeroen Wijenbergh <jeroen.wijenbergh@geant.org>2025-08-25 14:40:18 +0200
commit5461efc826952833fcdecca5d3daa3ee70423a31 (patch)
tree0d9c71cf09f4a496d28f51409515ee6e79a24071 /internal/log/log.go
parent08699e08d39675b76a9b813fd9fe41be6ab47a18 (diff)
Client + Log: Implement a log rotater
Diffstat (limited to 'internal/log/log.go')
-rw-r--r--internal/log/log.go15
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
}