mirror of
https://github.com/Seldaek/monolog.git
synced 2025-07-31 02:10:22 +02:00
Fix RotatingFileHandler bug where rotation could sometimes not happen correctly, fixes #1905
This commit is contained in:
@@ -115,11 +115,14 @@ class RotatingFileHandler extends StreamHandler
|
||||
// on the first record written, if the log is new, we should rotate (once per day)
|
||||
if (null === $this->mustRotate) {
|
||||
$this->mustRotate = null === $this->url || !file_exists($this->url);
|
||||
if ($this->mustRotate) {
|
||||
$this->close(); // triggers rotation
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->nextRotation <= $record['datetime']) {
|
||||
$this->mustRotate = true;
|
||||
$this->close();
|
||||
$this->close(); // triggers rotation
|
||||
}
|
||||
|
||||
parent::write($record);
|
||||
@@ -134,6 +137,8 @@ class RotatingFileHandler extends StreamHandler
|
||||
$this->url = $this->getTimedFilename();
|
||||
$this->nextRotation = new \DateTimeImmutable('tomorrow');
|
||||
|
||||
$this->mustRotate = false;
|
||||
|
||||
// skip GC of old logs if files are unlimited
|
||||
if (0 === $this->maxFiles) {
|
||||
return;
|
||||
@@ -166,8 +171,6 @@ class RotatingFileHandler extends StreamHandler
|
||||
restore_error_handler();
|
||||
}
|
||||
}
|
||||
|
||||
$this->mustRotate = false;
|
||||
}
|
||||
|
||||
protected function getTimedFilename(): string
|
||||
|
Reference in New Issue
Block a user