azurath/larelog

Laravel 请求记录器

安装: 15

依赖项: 0

建议者: 0

安全性: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:package

1.2.1 2022-10-20 01:34 UTC

This package is auto-updated.

Last update: 2024-09-20 05:47:03 UTC


README

记录所有发送到和来自您的 Laravel 应用程序的 HTTP 请求,以及 GuzzleHTTP 请求。

特性

  • 记录传入(Laravel)和传出(GuzzleHttp)请求
  • 对 URL(使用正则表达式)、MIME 类型、HTTP 状态码的黑白名单
  • 将日志保存到数据库
  • 将日志写入 Laravel 日志
  • 将日志项传递给用户回调函数
  • 日志轮换(按数量和日期)
  • 保存已认证用户(支持多个 Laravel 用户模型)

安装

  1. 运行 composer require azurath/larelog
  2. \Azurath\Larelog\Middleware\Logger::class 添加到 app/Http/Kernel.php 文件中的 $middleware 数组末尾
  3. 运行 php artisan vendor:publish --provider=Azurath\Larelog\LarelogProvider
  4. 运行 php artisan migrate
  5. 享受吧。

GuzzleHttp

如果您正在使用 GuzzleHttp 并希望记录通过它执行的请求,只需在创建 GuzzleHttp 实例时传递额外的参数即可

    $client = new \GuzzleHttp\Client([
        'handler' => (new \Azurath\Larelog\Larelog())->getGuzzleLoggerStack(),
    ]);

或者,您可以将 Larelog 回调附加到现有堆栈

    $handlerStack = HandlerStack::create();
    //...
    $larelogStackCallback = (new \Azurath\Larelog\Larelog())->getGuzzleLoggerStackItem();
    $handlerStack->push($larelogStackCallback);    

设置

设置存储在 config/larelog.php

日志轮换

添加

$schedule->job(new \Azurath\Larelog\Jobs\RotateLogs())
->hourly()
->withoutOverlapping(60);

app/Console/Kernel.php 以启用日志轮换。

将请求项转换为文本

您可以得到数据库中存储的日志项的文本表示形式

$logItem = \Azurath\Larelog\Models\LarelogItem::where(...)->first();
$text = $logItem->formatAsText();

获取请求项的已认证用户

如果请求是由已认证的用户执行的,则将其 id 和模型名称(在您有不同的认证守卫和不同的提供者时)也保存到数据库中。您可以访问此用户

$logItem = \Azurath\Larelog\Models\LarelogItem::where(...)->first();
$user = $logItem->user;

字段

基本上,这个日志记录器保存请求开始时间(started_at)、请求执行时间(execution_time)、请求方向(direction,'incoming' 或 'outgoing')、Laravel 请求类型(type,api/web 等)、HTTP 方法(http_method)、HTTP 协议版本(http_protocol_version)、HTTP 响应代码(http_code)、URL(url)、请求头(request_headers)、请求数据(request)、响应头(response_headers)、响应数据(response),如果已认证,则还保存执行此请求的 Laravel 用户(属性 user,关系 user())。

常见问题解答

Q:为什么叫 'Azurath'?
A:这是误听的名称 'Azurewrath',然后听起来像 'Azuraf',经过几年变成了昵称 'Azurat'。

Q:为什么叫 'Larelog'?
ALAravel REquest LOGger。