tvup/laravel-fejlvarp

为Laravel设计的简单事件记录器


README

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

Laravel Fejlvarp是一个专为Laravel应用程序定制的强大事件记录器。它旨在简化错误跟踪,确保您始终能够及时了解运行时错误,以便快速解决问题。

为什么选择Laravel Fejlvarp?

  • 即时通知:当事件发生或重新打开时,通过电子邮件或pushover.net立即通知。
  • 直观界面:用户友好的Web界面让您深入了解每个事件的相关调试信息。
  • 无缝集成:无需任何麻烦即可直接集成到您的Laravel应用程序中。

贡献者

此包是Fejlvarp的增强版,由troelskn创建。感谢您让我参与这个想法,让它成为laravel的包。

negoziator在制作此包的过程中也提供了巨大的帮助。

支持的版本

此项目支持多种PHP和Laravel版本,并在多个操作系统上进行了测试。以下是支持的版本详情

PHP和Laravel兼容性

操作系统

此项目在以下操作系统上进行了测试

  • Ubuntu(最新版)
  • Windows(最新版)

测试稳定性

在不同的依赖关系场景下测试该项目,以确保强大的兼容性

  • 优先考虑最低版本:确保与依赖项的最旧版本兼容。
  • 优先考虑稳定版本:确保与依赖项的最新稳定版本兼容。

安装

您可以通过composer安装此包

composer require tvup/laravel-fejlvarp

默认路由到事件列表将是http://your-url.top/incidents

重要!请确保使用(admin)身份验证保护此路由

您可以通过让包安装其依赖项来享受便利

php artisan fejlvarp:install

它还会询问您是否想要创建(迁移)将存储事件的表

除了做上述事情,或者如果您只是好奇,您可以手动发布文件,方法如下

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="fejlvarp-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="fejlvarp-config"

这是已发布配置文件的内容

return [
    'ipstack' => ['access_key' => env('INCIDENT_MANAGER_IPSTACK_ACCESS_KEY')],

    'pushover' => [
        'userkey' => env('INCIDENT_MANAGER_PUSHOVER_USER_KEY'),
        'apitoken' => env('INCIDENT_MANAGER_PUSHOVER_API_TOKEN'),
    ],

    'slack' => [
        'webhook_url' => env('INCIDENT_MANAGER_SLACK_WEBHOOK_URL'),
    ],

    'mail_recipient' => env('INCIDENT_MANAGER_EMAIL_RECIPIENT'),
];

ipstack用于获取关于IP地址的信息 - 您可以在此处获取访问密钥:https://ipstack.com/signup/free ipstack的结果被缓存,因此不会立即耗尽免费查找。

Pushover/slack/mail用于通知新事件或重新打开的事件

可选地,您可以使用以下命令发布视图

php artisan vendor:publish --tag="fejlvarp-views"

您可以用以下方式替换您的异常处理器

php artisan vendor:publish --tag=fejlvarp-provider

请确保服务提供程序已正确安装

您可以让其他应用程序报告到您安装的应用程序,可以从/src/Exceptions/LaravelFejlvarpExceptionHandler.php中获取灵感

$hash = config('app.name')
            . $exception->getMessage()
            . preg_replace('~revisions/[0-9]{14}/~', '--', $exception->getFile())
            . $exception->getLine();
        $user = request()->user();

        $data = [
            'hash' => md5($hash),
            'subject' => $exception->getMessage() ? $exception->getMessage() : 'Subject is empty',
            'data' => json_encode([
                'application' => config('app.name'),
                'error' => [
                    'type' => get_class($exception),
                    'message' => $exception->getMessage(),
                    'code' => $exception->getCode(),
                    'file' => $exception->getFile(),
                    'line' => $exception->getLine(),
                    'trace' => $exception->getTraceAsString(),
                ],
                'environment' => [
                    'GET' => $_GET ?: null,
                    'POST' => $_POST ?: null,
                    'SERVER' => $_SERVER ?: null,
                    'SESSION' => request()->hasSession() ? request()->session()->all() : null,
                ],
                'application_data' => $user ? [
                    'user' => $user->toArray(),
                ] : null,
                'queries' => app(Listener::class)->queries(),
            ], JSON_THROW_ON_ERROR),
        ];
        $request = Request::create(
            '/api/incidents', 
            'POST', 
            $data, 
            [], 
            [], 
            ['CONTENT_TYPE'=>'application/x-www-form-urlencoded']
        );
        app()->handle($request);

测试

composer test

通过laravel应用程序在本地开发laravel-fejlvarp

以下说明适用于已安装laravel-fejlvarp包的您的laravel应用程序

  • 在您的docker-compose.yml中添加一个卷
            - '../local-fejlvarp-folder-relative-to-laravel-folder:/var/www/packages/laravel-fejlvarp'

(在这些行下方)

        volumes:
          - '.:/var/www/html'
  • 添加仓库到composer
        {
            "type": "path",
            "url": "../packages/laravel-fejlvarp",
            "symlink": true
        }
  • 使用本地包
        "tvup/laravel-fejlvarp": "@dev"
sail composer update tvup/laravel-fejlvarp

现在,您每次更改包中的内容时都不需要运行composer update。(记得在推送任何内容之前恢复yml和composer文件)

变更日志

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

贡献

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

安全漏洞

有关如何报告安全漏洞,请参阅我们的安全策略

鸣谢

许可协议

MIT许可(MIT)。有关更多信息,请参阅许可文件