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 中的异常都能正确报告。
我正在尝试通过 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 中的异常都能正确报告。