Exception Silex:日志dbal异常

Exception Silex:日志dbal异常,exception,logging,console,silex,dbal,Exception,Logging,Console,Silex,Dbal,我使用的是Silex micro framework。我搜索了一个方法来记录每个dbal异常(来自请求、控制台命令等) 我没有找到有效的东西。即使我在$app->error()中声明了回调函数,它不适用于控制台异常 如何告诉dbal将所有db错误/异常记录到一个文件中?如果您有Silex的fat版本,只要已注册,您就应该已经有异常记录 控制台通常是(非)的实例 编辑完成记录控制台异常的一种方法是将控制台捕获异常设置为false: $console->setCatchExceptions(f

我使用的是Silex micro framework。我搜索了一个方法来记录每个dbal异常(来自请求、控制台命令等)

我没有找到有效的东西。即使我在
$app->error()中声明了回调函数,它不适用于控制台异常


如何告诉dbal将所有db错误/异常记录到一个文件中?

如果您有Silex的fat版本,只要已注册,您就应该已经有异常记录

控制台通常是(非)的实例

编辑完成记录控制台异常的一种方法是将控制台捕获异常设置为false:

$console->setCatchExceptions(false);
然后包装
$console->run()在尝试捕获中:

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()));
}