拦截 Laravel 作业失败事件以更改写入的日志
Intercepting Laravel job failing event to change log written
我可以使用 \Queue::failing()
捕获事件,但是如何防止在检测到特定失败原因时写入 Laravel 日志?
例如,当作业因为尝试次数太多而失败时,MaxAttemptsExceededException
会在失败期间触发。假设我想打断它以向日志消息中添加一些内容,甚至将日志类型更改为 "warning" 而不是 "error"。我该怎么做?
您可以在 Exception Handler Class.
中通过 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);
}
我可以使用 \Queue::failing()
捕获事件,但是如何防止在检测到特定失败原因时写入 Laravel 日志?
例如,当作业因为尝试次数太多而失败时,MaxAttemptsExceededException
会在失败期间触发。假设我想打断它以向日志消息中添加一些内容,甚至将日志类型更改为 "warning" 而不是 "error"。我该怎么做?
您可以在 Exception Handler Class.
中通过 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);
}