Пакет Laravel Console Logger предоставляем механизм логирования и извещений для консольных команд. В Laravel вывод штатными средствами происходит в общий лог. Для консольных команд это чаще всего не удобно. Эту проблему пакет решает успешно. Кстати, использует все тот же Monolog.
Установка пакета:
composer require illuminated/console-logger
Для использования нужно указать trait Loggable
.
use Illuminated\Console\Loggable;
class ExampleCommand extends Command
{
use Loggable;
public function handle()
{
$this->logInfo("Hello World!");
}
// ...
}
Результат использования команды:
[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 в отдельной директории для каждой команды. Также поддерживается ротация логов.
Система извещений имеется на случай если вы хотите быть оперативно проинформированны о сообщениях определенного уровня критичности.
Есть различные каналы извещений:
- slack
- database.
Еще одна приятная мелочь. Пакет умеет вести автоматическое логирование http обращений с помощью Guzzle 6+ (http-клиент на php).