我正在使用Silex微框架。我搜索了一个方法来记录每个dbal异常(来自请求,控制台命令等......)
我找不到有用的东西。即使我在$app->error();
中声明了一个回调函数,它也不适用于控制台异常
如何告诉dbal登录文件所有数据库错误/异常?
答案 0 :(得分:1)
如果你有胖版Silex,你应该已经使用MonologServiceProvider进行异常记录,只要它已经注册。
控制台通常是Symfony\Component\Console\Application(不是Silex\Application)的实例。
编辑完成日志控制台异常的一种方法是将控制台捕获异常设置为false:
$console->setCatchExceptions(false);
然后将$console->run();
包装在try catch中:
try {
$console->run();
}
catch(\Doctrine\DBAL\DBALException $e) {
$app['monolog']->addError(sprintf('Console DBALException %s %s %s', $e->getMessage(), $e->getTraceAsString(), $e->getFile(), $e->getLine()));
}
catch(\Exception $e) {
$app['monolog']->addError(sprintf('Console Exception %s %s %s', $e->getMessage(), $e->getTraceAsString(), $e->getFile(), $e->getLine()));
}