Symfony 将进程输出写入文件

问题描述 投票:0回答:2

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

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

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

显然,代码启动了一个服务总线实例,该实例侦听所有传入服务器的请求。一旦运行测试,请求就会发送到服务总线并卡在那里。我需要查看启动 servicebus 命令的输出以了解出了什么问题。

知道如何将进程的输出写入某个日志文件吗?

php symfony ubuntu phpunit symfony-process
2个回答
0
投票

您需要定期致电

$servicebusCommand->getIncrementalErrorOutput()
$servicebusCommand->getIncrementalOutput()


0
投票

只需将闭包传递给启动或运行函数

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

从这里开始

© www.soinside.com 2019 - 2024. All rights reserved.