如何使用 Laravel 和 Monlog 创建循环日志文件

How to create rotating log file with Laravel and Monlog

我正在尝试使用 Monolog 在 Laravel 中创建自己的轮换日志文件,但是,文件轮换不起作用,我不知道为什么。

我创建了一个 artisan 命令,每天 运行 一次,并记录它的 activity。我希望在 2 天后删除此文件的旧版本。换句话说,只有今天 运行 和昨天 运行 的日志应该存在。

在我的 artisan 命令的开头,我有以下代码:

$log = new Logger('MyCustomLog');
$log->pushHandler(new RotatingFileHandler(storage_path().'/logs/mycustomlog.log'), 2);

然后,在整个命令中,我将信息记录到其中:

$log->addInfo('Info to log');

这对我来说似乎很简单,但根本行不通。日志文件正在正确生成,但它们永远不会被删除。我在 app/storage/logs 文件夹中看到以下内容:

mycustomlog-2015-01-30.log
mycustomlog-2015-01-31.log
mycustomlog-2015-02-01.log
mycustomlog-2015-02-02.log
mycustomlog-2015-02-03.log

我希望只看到最后 2 个文件。我在这里做错了什么?

你的一个支架确实有点不合适。您必须将日志文件的数量传递给 RotatingFileHandler 的构造函数,而不是作为 pushHandler():

的第二个参数
$log->pushHandler(new RotatingFileHandler(storage_path().'/logs/mycustomlog.log', 2));
//                                                                                ^