diff --git a/src/Monolog/Handler/RotatingFileHandler.php b/src/Monolog/Handler/RotatingFileHandler.php index e63cca0e..550ea5cf 100644 --- a/src/Monolog/Handler/RotatingFileHandler.php +++ b/src/Monolog/Handler/RotatingFileHandler.php @@ -23,6 +23,7 @@ class RotatingFileHandler extends StreamHandler { protected $filename; protected $maxFiles; + protected $mustRotate; /** * @param string $filename @@ -43,9 +44,26 @@ class RotatingFileHandler extends StreamHandler $timedFilename .= '.'.$fileInfo['extension']; } + // disable rotation upfront if files are unlimited + if (0 === $this->maxFiles) { + $this->mustRotate = false; + } + parent::__construct($timedFilename, $level, $bubble); } + /** + * {@inheritdoc} + */ + public function write(array $record) + { + // on the first record written, if the log is new, we should rotate (once per day) + if (null === $this->mustRotate) { + $this->mustRotate = !file_exists($this->url); + } + return parent::write($record); + } + /** * Closes the handler. */ @@ -53,7 +71,7 @@ class RotatingFileHandler extends StreamHandler { parent::close(); - if (0 !== $this->maxFiles) { + if (true === $this->mustRotate) { $this->rotate(); } }