【发布时间】:2020-03-24 01:52:13
【问题描述】:
我有一个 Symfony 3.2 应用程序。我创建了一个命令来运行一些后台任务。我必须知道命令何时完成,即使它导致异常或致命错误。
我的第一个想法是用try/catch 块包围我的代码。我能够将我的代码或 PHP 库中生成的异常捕获为PDO,但不能捕获核心致命错误。然后我尝试接收错误,因此我将处理程序推送到应用程序记录器。我再次拦截异常但不是致命错误。这是我将处理程序添加到记录器的方法:
$logger = $this->getContainer()->get('logger');
$handler = $this->getContainer()->get('app.bg_command_log_handler');
$logger->pushHandler(self::$handler);
这里是处理程序:
use Monolog\Handler\AbstractProcessingHandler;
class BgCommandLogHandler extends AbstractProcessingHandler
{
protected function write(array $record)
{
var_dump($record);
}
}
Symfony 版本是 3.2,PHP 是 5.6。
【问题讨论】:
-
@yivi 嗨,对不起,我离开了几天。
标签: php symfony error-handling symfony-3.2