拦截Laravel作业失败事件以更改写入的日志

时间:2018-02-13 02:39:32

标签: laravel laravel-5.3

我可以使用\Queue::failing()捕获事件但是如何在检测到特定故障原因时阻止写入Laravel日志?

例如,当作业因尝试次数过多而失败时,失败时会触发MaxAttemptsExceededException。假设我想要中断它以在日志消息中添加内容,甚至将日志类型更改为“警告”而不是“错误”。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以在Exception Handler Class内按类捕获异常。

使用report方法:

public function report(Exception $exception)
{
    if ($exception instanceof MaxAttemptsExceededException) {
        // add custom message
        // optionally return parent::report($exception); to continue normal flow
    }

    return parent::report($exception);
}