如何使用 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));
// ^
我正在尝试使用 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));
// ^