如何将异步进程的输出写入文件。我的 phpunit 引导文件中有以下代码:
$command = 'exec php ' . $kernel->getRootDir() . '/console '
. 'xxx:servicebus:start-services --env='
. $kernel->getEnvironment();
$servicebusCommand = new Symfony\Component\Process\Process($command);
$servicebusCommand->start();
显然,代码启动了一个服务总线实例,该实例侦听所有传入服务器的请求。一旦运行测试,请求就会发送到服务总线并卡在那里。我需要查看启动 servicebus 命令的输出以了解出了什么问题。
知道如何将进程的输出写入某个日志文件吗?
您需要定期致电
$servicebusCommand->getIncrementalErrorOutput()
和$servicebusCommand->getIncrementalOutput()
。
只需将闭包传递给启动或运行函数
$process->start(function ($type, $buffer) use ($logFile) {
file_put_contents($logFile, $buffer, FILE_APPEND);
if ('err' === $type) {
echo 'ERR > '.$buffer;
} else {
echo 'OUT > '.$buffer;
}
});