Я пытаюсь создать свой собственный ротационный файл журнала в Laravel с помощью Monolog, однако ротация файлов не работает, и я не знаю почему.
Я создал ремесленную команду, которая запускается один раз в день и ведет журнал ее активности. Я хочу, чтобы старые версии этого файла были удалены через 2 дня. Другими словами, должен существовать только журнал сегодняшнего пробега и вчерашнего пробега.
В начале моей команды ремесленника у меня есть следующий код:
$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));
// ^
Других решений пока нет …