Symfony Command点击了monolog

时间:2016-12-22 18:59:16

标签: symfony monolog

我创建了一个自定义命令。我想用monolog记录用户使用参数和选项轻触的命令

例如:php bin/console app:my_command argument1 --option=1234

现在我有了:

        $this->log->error('error on command', array(
            'command_tapped_by_user' => '????',
            'command' => $this->getName(),
            'arguments' => $input->getArguments(),
            'options' => $input->getOptions(),
            'exception' => $e->getMessage()
        ));

谢谢

1 个答案:

答案 0 :(得分:2)

传递给PHP脚本的所有参数都在$argv数组中提供,其中第一个元素是脚本名称。它不是一个超级全球的"数组和Symfony命令(或任何其他函数或方法),它可以作为$GLOBALS的元素或通过global关键字。原始命令由空白字符分隔。要恢复它,你应该加入它们:

echo join(' ', $GLOBALS['argv']);

此外,如果您不担心操作系统依赖关系(如果您是不符合规范的人),则可以使用系统工具。例如,在Linux环境中,当前命令行存储在/proc/$PID/cmdline

$pid = getmypid();
$cmd = file_get_contents("/proc/$pid/cmdline");
// Arguments are splitted by NULL bytes that we replace by space character:
echo str_replace("\0", " ", $cmd);