justbetter / laravel-error-logger
一种简单的方法来记录错误,并支持Laravel Nova。
Requires
- php: ^8.1
- laravel/framework: ^10.0|^11.0
Requires (Dev)
- larastan/larastan: ^2.9
- orchestra/testbench: ^8.0|^9.0
README
此包提供了一个方便的方法来记录应用程序中发生的错误。您可以将一个任务添加到调度器中,以便通过例如Slack等方式接收关于报告错误的每日通知。
还提供了对Laravel Nova的支持,您可以使用 justbetter/nova-error-logger
包查看报告错误的列表。
请注意,此包不会自动保存Laravel或PHP抛出的异常 - 您必须像以下文档中所示手动保存它们。
设置
为了使用此包,需要执行以下操作。
发布
发布包的配置。
php artisan vendor:publish --provider="JustBetter\ErrorLogger\ServiceProvider"
迁移
运行迁移。
php artisan migrate
调度器
注意! 这不是必须的,使用此包不需要它。
在您的 App\Console\Kernel.php
中,您可以添加每日错误通知任务,如下所示
use JustBetter\ErrorLogger\Jobs\ErrorNotificationJob; $schedule->job(ErrorNotificationJob::class)->dailyAt('09:00');
配置
将以下变量添加到您的 .env
中,以定义如果启用了任务,则用于每日通知的日志通道。
LARAVEL_ERROR_NOTIFICATION_CHANNEL=slack
命令
日志表可能会很快累积。为了修剪旧记录,您可以使用以下命令
php artisan laravel-error-logger:prune --all php artisan laravel-error-logger:prune --hours=720
要自动修剪日志,您可能想要将此命令添加到您的调度器中。
示例用法
重要! 当使用
withChannel
方法时,将直接在保存时发送通知。
错误类可以轻松使用。无需设置任何值即可保存日志。
use JustBetter\ErrorLogger\Models\Error; Error::log() ->withGroup('Magento') ->withMessage('Something went wrong!') ->withDetails('Extra information of this log!') ->withThrowable($exception) ->withChannel('slack') ->withModel($model) ->save();
FromThrowable 方法
您还可以使用 fromThrowable
方法。此函数接受一个 Throwable
,与 withThrowable
相比,自动设置以下额外属性
- withDetails
- withCode
仍然可以在链接到异常之后覆盖这些值。
分组
错误将自动分组。在配置中,您可以为此设置一个间隔。如果您不想分组,可以调用 dontGroup()
。
隐藏索引
您可以通过调用 hideFromIndex()
将错误从索引中隐藏。
模型关系
当使用 withModel
方法时,您可以检索特定模型的错误。\JustBetter\ErrorLogger\Traits\HasErrors
特性包含此关系,名称为 errors()
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。