BugSnag 不适用于生产中的 Laravel Vapor

BugSnag not working for Laravel Vapor in production

我正在尝试通过 Laravel Vapor 将 BugSnag 与部署在 AWS Lambda 上的 Laravel 应用集成。

Bugsnag 在我的本地运行良好,但不会从 AWS Lamda 发送任何错误。

我也试过 Bugsnag::setBatchSending(false) 但它仍然不适合我。

有什么想法是错误的吗?

Laravel Vapor 将默认日志记录配置更改为 stderr 通道,由 AWS CloudWatch 捕获和记录。

使用包含 stderr 和 BugSnag 通道的堆栈驱动程序添加一个新的 vapor 通道对我有用。

在.env.production

LOG_CHANNEL=vapor

在config/logging.php

return [

    "channels" => [        

        "vapor" => [
            "driver" => "stack",
            "channels" => ["bugsnag", "stderr"],
            "ignore_exceptions" => false,
        ],

        "bugsnag" => [
            "driver" => "bugsnag",
        ],

    ],

];

接受的答案在排队的作业中对我来说没有正确工作,仅适用于网络请求。

Taylor 在 Twitter 上评论说最好在应用程序的错误处理程序中执行此操作 (app/Exceptions/Handler.php)

public function report(Throwable $e)
{
    if (app()->environment() !== 'local') {
        Bugsnag::notifyException($e);
        Bugsnag::flush();
    }

    parent::report($e);
}

这样,web、cli 和 queue 中的异常都能正确报告。