matthewbdaly/laravel-error-snapshot

将客户端和服务器端错误以一致格式存储,以辅助调试

0.0.4 2017-11-18 15:15 UTC

This package is auto-updated.

Last update: 2024-08-28 07:12:51 UTC


README

Build Status Coverage Status

将客户端和服务器端错误以一致格式存储,以辅助调试。

用例

随着单页Web应用的发展,许多现代Web应用已经将之前在服务器端处理的功能转移到客户端。这并非没有优点,但这也意味着许多错误可能被锁定在用户的Web浏览器中,无法轻松报告和修复。

此包为Laravel应用程序提供一个API端点,接受错误的堆栈跟踪,以及可选的应用程序状态表示和元字段。它通过在接收到请求时触发事件来工作,事件监听器将数据持久化到数据库。

如果您想捕获服务器端异常,也可以自己触发此事件。这允许将所有异常存储在一个地方,以便于管理。

安装

$ composer require matthewbdaly/laravel-error-snapshot

使用方法

此包在 /api/snapshot 提供一个API端点。如果您想存储客户端发生的错误,应向该端点发送以下参数的 POST 请求

  • trace - 错误的完整堆栈跟踪(必需)。
  • state - 应用程序状态的JSON表示。这主要用于使用像Redux或Vuex这样的数据存储的情况。
  • meta - 其他数据的JSON表示,您希望存储以帮助调试,例如当前路由、JSON Web令牌或购物车状态

如果用户已登录,用户ID也将自动捕获。

对于服务器端应用程序,您应触发事件 Matthewbdaly\LaravelErrorSnapshot\Events\SnapshotCaptured 并以数组形式将相同的数据传递给构造函数

$data = [
    'trace' => $trace,
    'state' => $state,
    'meta' => $meta,
    'user_id' => Auth::user()->id,
];
event(new SnapshotCaptured($data));

在大多数情况下,您可能想在主异常处理程序中这样做。

查看快照

由于查看快照将是特定于应用程序的,因此没有视图、控制器或路由用于显示它们。您应自行实现此功能。已包含一个用于检索快照的存储库,只需类型提示 Matthewbdaly\LaravelErrorSnapshot\Contracts\Repositories\Snapshot 即可检索它。