From b9173f07aa642418644db8a83f14a9ab49d00f55 Mon Sep 17 00:00:00 2001 From: Esteban Galvis Date: Mon, 1 Jun 2026 10:00:58 -0500 Subject: [PATCH] fix: update logger implementation to use lumberjack for log rotation --- packages/fuse-daemon/go.mod | 5 ++++- packages/fuse-daemon/go.sum | 2 ++ packages/fuse-daemon/internal/logger/logger.go | 18 +++++++++++------- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/fuse-daemon/go.mod b/packages/fuse-daemon/go.mod index 176107f46..13190ed1f 100644 --- a/packages/fuse-daemon/go.mod +++ b/packages/fuse-daemon/go.mod @@ -4,4 +4,7 @@ go 1.26.1 require github.com/hanwen/go-fuse/v2 v2.9.0 -require golang.org/x/sys v0.28.0 // indirect +require ( + golang.org/x/sys v0.28.0 // indirect + gopkg.in/lumberjack.v2 v2.0.0 // indirect +) diff --git a/packages/fuse-daemon/go.sum b/packages/fuse-daemon/go.sum index b30d22cb7..ec6737901 100644 --- a/packages/fuse-daemon/go.sum +++ b/packages/fuse-daemon/go.sum @@ -4,3 +4,5 @@ github.com/moby/sys/mountinfo v0.7.2 h1:1shs6aH5s4o5H2zQLn796ADW1wMrIwHsyJ2v9Kou github.com/moby/sys/mountinfo v0.7.2/go.mod h1:1YOa8w8Ih7uW0wALDUgT1dTTSBrZ+HiBLGws92L2RU4= golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/lumberjack.v2 v2.0.0 h1:IDj6hi8KbNiPQ5VaYNFZ7dBJLF5LFeKvsFrWHjA5aq4= +gopkg.in/lumberjack.v2 v2.0.0/go.mod h1:bp5nQ2kK/lLQSmTk29azj9+JB6bWci56xFn/lvd5GLI= diff --git a/packages/fuse-daemon/internal/logger/logger.go b/packages/fuse-daemon/internal/logger/logger.go index d7fc16659..64501596b 100644 --- a/packages/fuse-daemon/internal/logger/logger.go +++ b/packages/fuse-daemon/internal/logger/logger.go @@ -1,18 +1,22 @@ package logger import ( - "fmt" "log/slog" - "os" + + "gopkg.in/lumberjack.v2" ) + func New(logFilePath string) *slog.Logger { - f, err := os.OpenFile(logFilePath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) - if err != nil { - fmt.Fprintf(os.Stderr, "failed to open log file %s: %v\n", logFilePath, err) - os.Exit(1) + + rotatingWriter := &lumberjack.Logger{ + Filename: logFilePath, + MaxSize: 500, // MB + MaxBackups: 3, + MaxAge: 30, // days + Compress: true, } - return slog.New(slog.NewJSONHandler(f, &slog.HandlerOptions{ + return slog.New(slog.NewJSONHandler(rotatingWriter, &slog.HandlerOptions{ Level: slog.LevelDebug, })) }