【问题标题】:Symfony2 is not logging exceptions thrown inside custom commandSymfony2 没有记录自定义命令中抛出的异常
【发布时间】:2012-09-11 21:41:19
【问题描述】:
当在正常的 http 请求期间发生错误时,Symfony2 会记录所有内容(取决于您的日志记录级别),您可以在 dev.log 或 app.log 中看到它。
但是当您在执行自定义命令期间遇到错误时,它不会记录任何内容。它只是在标准输出中显示一条红色消息,甚至没有回溯。
我可以做些什么来记录所有错误,就像第一种情况一样?
【问题讨论】:
标签:
logging
symfony
exception-handling
symfony-2.1
monolog
【解决方案1】:
我必须自己做,Symfony2 不会做。
创建一个 BaseCommand 以进行扩展,以捕获所有错误和异常并记录它们。
【解决方案2】:
当您在运行命令时添加--verbose 选项时,您应该会看到回溯。
我想如果你愿意,你可以抓住\Exception 并使用容器中的独白记录器(命令可以访问 DIC)。
如果需要,我认为您也可以通过其他方式进行操作,例如
扩展 Symfony\Component\Console\Application 类和方法 renderException 并在那里记录错误,但我从来没有真正这样做过,只是看到命令/应用程序 API 应该允许这样做。