PHP Monolog可以通过使用RotatingFileHandler来实现日志轮换。RotatingFileHandler可以按照指定的条件(如日志文件大小、日志文件数量等)来自动进行日志轮换。
以下是一个使用RotatingFileHandler实现日志轮换的示例代码:
use Monolog\Logger;
use Monolog\Handler\RotatingFileHandler;
// 创建一个Monolog实例
$log = new Logger('name');
// 创建一个RotatingFileHandler,设置日志文件路径和最大文件数量
$handler = new RotatingFileHandler('path/to/logfile.log', 3);
// 设置日志等级
$handler->setLevel(Logger::DEBUG);
// 添加handler到Monolog实例
$log->pushHandler($handler);
// 记录日志
$log->info('This is a log message');
在上面的示例中,我们创建了一个Monolog实例,并使用RotatingFileHandler设置了日志文件路径为’path/to/logfile.log’,最大文件数量为3。当日志文件大小达到一定阈值时,RotatingFileHandler会自动将日志写入到下一个文件,并最终循环覆盖之前的文件。
通过使用RotatingFileHandler,可以很方便地实现日志轮换功能,保持日志文件的大小和数量在可控范围内。