我在控制台中有一个类执行命令。此类定义为LoggerInterface
定义的@logger.handler
。
我想在bash中执行命令,但是:
这个类的主要方法如下:
$command = $command . " > 2>&1";
$returnVal = null;
$output = [];
exec($command, $output, $returnVal);
$this->logger->debug($output);
我添加了> 2>&1
在当前流中没有显示任何内容,因为我不知道如何从$ output中获取app/log/application.log
...
问题是我的app / config / application.log中没有任何内容!
你知道我错过了什么吗?
答案 0 :(得分:0)
由于> 2>&1
//$command = $command . " > 2>&1";
$returnVal = null;
$output = [];
exec($command, $output, $returnVal);
for ($i=0;$i<count($output);$i++)
$this->logger->debug($output[$i]);
如果调试器为每个时间戳创建多个时间戳并且它不是所需的输出,那么使用它:
$returnVal = null;
$output = [];
exec($command, $output, $returnVal);
$result=""
for ($i=0;$i<count($output);$i++)
$result.=$output[i]."\n";
$this->logger->debug($result);