entensy / filament-tracer
Filament Tracer 是一个灵活的包,用于报告异常和跟踪。表模式与任何选择的语言兼容。
v0.1.5
2024-08-04 18:01 UTC
Requires
- php: ^8.1|^8.2
- filament/filament: ^3.0
- illuminate/database: ^10.48|^11.19
- illuminate/support: ^10.48|^11.19
- spatie/laravel-ignition: ^2.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- illuminate/testing: ^10.29
- laravel/pint: ^1.13
- pestphp/pest: ^2.24.0
- phpunit/phpunit: ^10.4.0
README
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) 保护。