1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-23 21:33:25 +02:00

Optimize rotation so it's only done once per day at most

This commit is contained in:
Jordi Boggiano
2011-04-05 22:24:39 +02:00
parent 35dd65dea3
commit 45312dfc84

View File

@@ -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();
}
}