Я пытаюсь подключить файл журнала, используя консольную команду для обнаружения определенных c ошибок. Однако обратный вызов в части run(...)
моего сценария никогда не вызывается в процессе Symfony:
use Illuminate\Console\Command;
use Symfony\Component\Process\Process;
class MonitorLogs extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'monitor:logs {log}';
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
$command = "tail -n 1 -f " . escapeshellarg($this->argument('log'));
(new Process($command))
->setTty(true)
->setTimeout(null)
->run(function ($type, $line) {
$this->info('test');
});
}
}
Я пытался отследить с помощью Xdebug любую точку останова на $this->info()
, которая никогда не будет достигнута. Я могу добавить строки в файл журнала, с которым я тестирую, и они отображаются в моей консоли во время работы скрипта, но эта строка для вывода слова test
никогда не удаляется.
Что здесь не так?