1
0
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:
Jordi Boggiano
2024-11-11 22:15:37 +01:00
parent 0779fb91e5
commit d57089bf87

View File

@@ -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