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 }