Console组件不提供任何日志功能,因为一般来说你在运行命令行时会自行监控输出。然而,仍然存在你需要日志的情形。例如,当你运行无人值守的命令时,比如通过Cron jobs或是deployment scripts(部署脚本)。

在Symfony 3.2中你需要创建自己的event listener或subscriber来订阅 console.exception 事件,并输出异常细节。在Symfony 3.3我们决定为命令行 开启自动的异常日志

因此,在执行命令时若有异常发生,你可以在日志文件中看到下面这样的信息:

1
2
3
4
5
[2017-02-15 09:34:42] app.ERROR: Exception thrown while running command:
"cache:clear -vvv". Message: "An error occured!" {"exception":"[object]
(RuntimeException(code: 0): An error occured! at vendor/symfony/symfony/
src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php:61)",
"command":"cache:clear -vvv","message":"An error occured!"} []

除了记录异常信息,新的subscriber也会监听 console.terminate 事件,每当一个命令没有以 0 exit status(退出码)结束时,它会添加一条日志信息。