Пакет Laravel Console Logger предоставляем механизм логирования и извещений для консольных команд. В Laravel вывод штатными средствами происходит в общий лог. Для консольных команд это чаще всего не удобно. Эту проблему пакет решает успешно. Кстати, использует все тот же Monolog.
Установка пакета:
1 |
composer require illuminated/console-logger |
Для использования нужно указать trait Loggable
.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
use Illuminated\Console\Loggable; class ExampleCommand extends Command { use Loggable; public function handle() { $this->logInfo("Hello World!"); } // ... } |
Результат использования команды:
1 2 3 4 5 6 7 |
[2016-05-11 17:19:21]: [INFO]: Command `App\Console\Commands\ExampleCommand` initialized. [2016-05-11 17:19:21]: [INFO]: Host: `MyHost.local` (`10.0.1.1`). [2016-05-11 17:19:21]: [INFO]: Database host: `MyHost.local`, port: `3306`, ip: ``. [2016-05-11 17:19:21]: [INFO]: Database date: `2016-05-11 17:19:21`. [2016-05-11 17:19:21]: [INFO]: Hello World! [2016-05-11 17:19:21]: [INFO]: Execution time: 0.009 sec. [2016-05-11 17:19:21]: [INFO]: Memory peak usage: 8 MB. |
Лог будет сохранен в storage/logs в отдельной директории для каждой команды. Также поддерживается ротация логов.
Система извещений имеется на случай если вы хотите быть оперативно проинформированны о сообщениях определенного уровня критичности.
Есть различные каналы извещений:
Еще одна приятная мелочь. Пакет умеет вести автоматическое логирование http обращений с помощью Guzzle 6+ (http-клиент на php).