0

我被指派寻找“laravel 方式”,了解如何为每种类型的异常设置不同的日志级别。
例如,SmsServiceException 应该报告到通知级别,而 PaymentServiceException - 应该报告到某个自定义级别。
从 Laravel 文档看来,推荐的方法是像这样修改 App\Exceptions\Handler 的报告方法:

if ($e instanceof SmsServiceException) {
    $loggingLevel = 'notice';
} elseif ($e instanceof PaymentServiceException) {
    $loggingLevel = 'custom';
}

$logger->{$loggingLevel}(
    $e->getMessage(),
    array_merge(
        $this->exceptionContext($e),
        $this->context(),
        ['exception' => $e]
    )
);

但我需要找到另一种方法。
类似于在每个异常中添加 logLevel 属性,然后在处理程序中:

$logger->{$e->logLevel}(
    $e->getMessage(),
    array_merge(
        $this->exceptionContext($e),
        $this->context(),
        ['exception' => $e]
    )
);

或者将日志级别作为参数传递给异常构造函数:

throw new SmsServiceException('message', $logLevel);

除了上面的第一个方法之外,任何人都可以推荐任何“laravel-way”方法吗?

4

0 回答 0