我正在使用Symfony2.0。
我在Symfony中创建了一个命令,希望将其输出写入文件。
我想要的是将所有标准输出(控制台上的输出)都保存到一个变量中。这包括命令中的输出、其他文件中捕获的异常以及由命令调用的内容等。我希望将输出同时显示在屏幕上,并保存到一个变量中(以便将变量的内容写入文件)。我将在命令的execute()
方法的末尾进行文件写入。
类似于以下代码:
protected function execute(InputInterface $input, OutputInterface $output)
{
// some logic and calls to services and functions
echo 'The operation was successful.';
$this->writeLogToFile($file, $output???);
}
我希望文件中包含以下内容:
[Output from the calls to other services, if any]
The operation was successful.
您能帮我吗?
我尝试了类似于这样的东西:
$stream = $output->getStream();
$content = stream_get_contents($stream, 5);
但是该命令并不以这种方式完成。:(
Application
类,并实现实现OutputInterface
的 writer,你可以在这里看到一些内容 [http://symfony.com/doc/2.0/cookbook/console/logging.html#enabling-automatic-exceptions-logging]。 - Matteo