mehrdadmahdian/laravel-scenario-logger

此包帮助您在单一快照中跟踪您的请求

v1.1.0 2021-09-21 08:23 UTC

This package is auto-updated.

Last update: 2024-09-27 14:59:48 UTC


README

Laravel Scenario Logger

此包帮助您在Laravel应用程序中记录每个请求的所有所需活动,从请求入口到生成响应的单个快照。

目录
  1. 安装
  2. 用法
  3. 联系
  4. 致谢
  5. 贡献
  6. 待办事项列表
  7. 建议功能

安装

  1. 运行composer命令
    composer require escherchia/laravel-scenario-logger
  1. 为了处理异常日志,请将以下代码行添加到您的默认异常处理器(通常为App\Exception\Handler
    use Escherchia\LaravelScenarioLogger\Logger\ScenarioLogger;
    public function register()
    {
            $this->reportable(function (Throwable $e) {
                ScenarioLogger::logForService('log_exception', $e);
                ScenarioLogger::finish();
            });
    }
        ...
  1. 在您的shell上运行发布命令,如果您想访问应用程序中的包配置文件
      php artisan vendor:publish
  1. 运行迁移以确保数据库中有适当的表
      php artisan migrate

请选择LaravelScenarioLoggerServiceProvider以发布包提供者

用法

在将此包正确安装到您的应用程序后,所有请求都将使用默认存储驱动程序(即内置的database存储驱动程序)进行记录。默认存储驱动程序在包配置文件中定义。

为了记录场景,必须激活日志服务。此功能可以在配置文件中找到

...
   'is_active' => true,
...

存储

可以在配置文件中定义替代日志存储驱动程序,如下所示

...
   'default_storage_driver' => Path\TO\YourStorageDriver,
...

YourStorageDriver类必须实现Escherchia\LaravelScenarioLogger\StorageDrivers\StorageDriverInterface

数据库驱动程序连接

如果您决定使用内置数据库驱动程序将场景记录到持久层,您可以指定应使用哪个数据库驱动程序。

...
   'storage_drivers' => [
       'database' => [
           'connection' => 'your-connection-name'
       ]   
   ]
...

日志服务

对于每个场景,每个日志部分的处理都由一个专门的模块负责。您可以通过在活动服务列表中注释此模块来从场景日志过程中移除此功能

...
  'service_configuration' => [
     'log_user' => [
        'active' => true,
        'class' => LogUser::class
    ],
    'log_response' => [
        'active' => true,
        'class' => LogResponse::class,
        'disable-store-content' => false,
    ],
    'log_request' => [
        'active' => true,
        'class' => LogRequest::class,
    ],
    'log_exception' => [
        'active' => true,
        'class' => LogException::class,
    ],
    'log_manual_trace' => [
        'active' => true,
        'class' => LogManualTrace::class,
    ],
    'log_model_changes' => [
        'active' => true,
        'class' => LogModelChanges::class,
        'models' => [
            // model goes here
        ],
    ],
  ]
...

排除的路由

您可以引入一些路由URI作为排除的路由进行记录,如下所示

...
  'excluded-routes' => [
     'some/route/uri'
  ]
...

贡献

如果您想为此项目做出贡献,请遵循以下说明。

  1. 分支项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m '添加一些AmazingFeature'
  4. 将更改推送到分支(git push origin feature/AmazingFeature
  5. 在此存储库上打开一个PR
  6. 等待接受和合并PR

许可证

在MIT许可证下分发。有关更多信息,请参阅LICENSE

联系

Mehrdad Mahdian: Gmail

项目链接: laraval-scenario-logger

待办

  • 为配置项添加描述性注释
  • 在composer.json中更新依赖项到适当版本
  • 支持控制台模式下的日志记录

建议功能

  • 日志查看器实用程序
  • 控制台命令场景日志
  • 将日志存储在队列中的能力