From 0eafc6806bc03e0c66fb22e328bf14200b63f946 Mon Sep 17 00:00:00 2001 From: mstar Date: Mon, 24 Mar 2025 17:28:38 +0100 Subject: [PATCH] fix(logrotate): Now creates dir needed If the directory containing the target log file doesn't exist, try and create the directory first --- logrotate/logrotate.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/logrotate/logrotate.go b/logrotate/logrotate.go index 9b19992..ecf4c7f 100644 --- a/logrotate/logrotate.go +++ b/logrotate/logrotate.go @@ -4,6 +4,7 @@ package logrotate import ( "os" + "path" "sync" "time" ) @@ -54,6 +55,13 @@ func (w *RotateWriter) Rotate() (err error) { } // Create a file. + dir := path.Dir(w.filename) + _, err = os.Stat(dir) + if err != nil { + if err = os.Mkdir(dir, os.ModeDir); err != nil { + return + } + } w.fp, err = os.Create(w.filename) return }