ubuntu Symfony将进程输出写入文件

7dl7o3gd  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(87)

如何将异步进程的输出写入文件。在phpunit bootstrap文件中有以下代码:

$command = 'exec php ' . $kernel->getRootDir() . '/console '
            . 'xxx:servicebus:start-services --env='
            . $kernel->getEnvironment();

$servicebusCommand = new Symfony\Component\Process\Process($command);
$servicebusCommand->start();

显然,代码启动了一个servicebus示例,它监听所有传入服务器的请求。一旦测试运行,请求就转到服务总线,并停留在那里。我需要查看start servicebus命令的输出,看看哪里出了问题。
如何将进程的输出写入日志文件?

8yoxcaq7

8yoxcaq71#

您需要定期调用$servicebusCommand->getIncrementalErrorOutput()$servicebusCommand->getIncrementalOutput()

ycggw6v2

ycggw6v22#

只需将闭包传递给start或run函数

$process->start(function ($type, $buffer) use ($logFile) {
        file_put_contents($logFile, $buffer, FILE_APPEND);
    
        if ('err' === $type) {
                echo 'ERR > '.$buffer;
        } else {
                echo 'OUT > '.$buffer;
        }
});

From here

相关问题