entensy/filament-tracer

Filament Tracer 是一个灵活的包,用于报告异常和跟踪。表模式与任何选择的语言兼容。

v0.1.5 2024-08-04 18:01 UTC

This package is auto-updated.

Last update: 2024-09-04 18:08:24 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Filament tracer 是一个灵活的插件,用于报告和查看异常和跟踪,具有通用表模式,以便能够存储来自其他编程语言的跟踪。

此包的目的是在整个应用程序中报告/记录错误,无论使用何种编程语言,只要您的应用程序与数据库连接,您就可以存储跟踪,然后稍后在 filament 仪表板中查看它们。

安装

此插件需要 Filament v3.0+,它不兼容旧版本!

通过 composer 安装包

composer require entensy/filament-tracer

您也可以在您的 composer.json 中使用直接仓库 URL

"require": {
  "entensy/filament-tracer": "dev-main"
}
"repositories": [
  {
    "type": "git",
    "url": "https://github.com/entensy/filament-tracer.git"
  }
]

使用

在您希望使用的 Filament 面板中注册插件

public function panel(Panel $panel): Panel
{
    return $panel
            ...
            ->plugins([
                FilamentTracerPlugin::make()
                    // You may define how you would like to get tab badge numbers, these must return int type
                    ->tracesCounterUsing(fn($record) => count( explode(PHP_EOL, $record->traces) ) ?? 0)
                    ->queriesCounterUsing(fn($record) => /** return int value */)
                    ->bodyCounterUsing(fn($record) => /** return int value */)
                    ->headersCounterUsing(fn($record) => /** return int value */)
                    ->cookiesCounterUsing(fn($record) => /** return int value */)
            ]);
}

要注册捕获异常和错误,请转到您的 app\Exceptions\Handler.php 文件,并在 register 方法中放置以下片段

$this->reportable(function (Throwable $e) {
    if ($this->shouldReport($e)) {
        \Entensy\FilamentTracer\FilamentTracer::capture($e, request());
    }
});

主题

您可以在 Filament Panel Service Provider 中更改调色板颜色

$panel
    ->colors([
        'danger' => Color::Rose,
        'primary' => Color::Red,
        'success' => Color::Green,
        'warning' => Color::Yellow,
        'gray' => Color::Gray,
        'info' => Color::Blue,
    ])

配置

您可以使用 Laravel 的发布命令发布配置

# Publish config file
php artisan vendor:publish --tag=filament-tracer-config

# Publish views
php artisan vendor:publish --tag=filament-tracer-views

# Publish translations
php artisan vendor:publish --tag=filament-tracer-translations

# Publish migrations
php artisan vendor:publish --tag=filament-tracer-migrations

自定义跟踪类

您可以通过更改插件配置文件中的默认类来编写自己的跟踪类。如果您没有此文件,您可以使用 php artisan vendor:publish --tag=filament-tracer-config 命令发布它

[
...
    // You may implement your own tracer by implementing Tracerable interface
    'tracer' => \Entensy\FilamentTracer\DefaultTracer::class,
...
]

定义自定义跟踪类必须实现 Tracerable 接口。

use Entensy\FilamentTracer\Contracts\Tracerable;

class MyCustomTracer implements Tracerable
{
    //
}

如果您想更改错误存储方式,您可以在自定义跟踪类中实现 HasStore 接口,然后在 store 方法中添加您的实现

use Entensy\FilamentTracer\Contracts\HasStore;
use Entensy\FilamentTracer\Contracts\Tracerable;

class MyCustomTracer implements Tracerable, HasStore
{
    public function store(): mixed
    {
        $err = $this->getThrowable():

        // just log the trace and don't store it in database
        logger()->error($err);

        return true;
    }
}

测试

composer test

更新日志

有关最近更改的更多信息,请参阅 更新日志

贡献

有关详细信息,请参阅 贡献

安全

有关任何安全问题,请发送电子邮件至 security@entensy.com

鸣谢

许可证

此存储库受 MIT 许可证 (MIT) 保护。