2014-10-07 40 views
2

我正在使用Symfony 2.0獲取Symfony命令的輸出並將其保存到文件中

我已經在Symfony中創建了一個命令,我想將其輸出寫入文件。

我想要的是將所有寫在標準輸出(在控制檯上)並將其放入變量中。無論如何,我的意思是在命令中迴應的東西,在其他文件中捕獲的異常,由命令調用等等。我想要在屏幕上和變量中輸出(爲了將變量的內容寫入文件中)。我將在該命令的​​方法末尾寫入文件。

事情是這樣的:

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); 

,但該命令不以這種方式結束。 :(

+0

您可以編寫自己的Base Application類,並實現實現OutputInterface的writer,您可以在這裏看到一些東西html的#啓用自動-例外的記錄) – Matteo 2014-10-07 11:10:45

回答

6

您可以使用標準shell方法使用php app/console your:command > output.log轉發命令輸出。或者,如果這不是一個選項,您可以爲OutputInterface引入一個包裝器,它將寫入一個流,然後將調用轉發給包裝輸出

相關問題