【问题标题】:BugSnag not working for Laravel Vapor in productionBugSnag 在生产中不适用于 Laravel Vapor
【发布时间】:2020-04-19 18:20:53
【问题描述】:

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

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

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

有什么想法可能是错的吗?

【问题讨论】:

    标签: laravel aws-lambda bugsnag laravel-vapor


    【解决方案1】:

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

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

    在 .env.production 中

    LOG_CHANNEL=vapor

    在 config/logging.php 中

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

    【讨论】:

    • 这对你在 web/cli/queue 上有用吗?我们对自定义 cloudwatch 日志做同样的事情,但在队列上不起作用,但在 web/cli 上起作用。你的对所有都有效吗?
    • 如果您将批处理设置设置为 false,队列作业似乎会向 Bugsnag 报告。在您的环境中设置 BUGSNAG_BATCH_SENDING=false。
    【解决方案2】:

    接受的答案在排队作业中对我不起作用,仅适用于网络请求。

    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 中正确报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-14
      • 2018-02-28
      • 2018-11-16
      • 1970-01-01
      • 2022-10-14
      • 2019-03-30
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多