moktech/mocklogger-sdk

Mocklogger SDK 是一个 Laravel 扩展包,旨在帮助开发者轻松集成 Mocklogger 日志工具。

1.0.92 2024-01-12 15:19 UTC

This package is auto-updated.

Last update: 2024-09-12 16:35:57 UTC


README

MockLogger SDK 提供了 Laravel 应用程序请求和响应数据记录的功能。此 SDK 提供了捕获和记录相关于传入 HTTP 请求及其响应数据的记录方法。

使用 MockLogger SDK,您可以轻松地捕获和记录 HTTP 请求和响应数据,帮助您监控和分析应用程序与外部服务和用户操作之间的交互。

安装

要开始使用 MockLogger SDK,请按照以下步骤进行安装

安装 SDK

使用 Composer 安装 MockLogger SDK

composer require moktech/mocklogger-sdk

发布配置

使用 Artisan 发布 MockLogger SDK 配置文件

php artisan vendor:publish --tag=mocklogger-config

注册服务提供者

打开 config/app.php 文件,并将服务提供者添加到 providers 数组中

'providers' => [
    // ...
    Moktech\MockLoggerSDK\MockloggerServiceProvider::class,
],

设置环境变量

在应用程序的 .env 文件中设置以下环境变量。您可以从 Mocklogger 应用程序中获取这些值

MOCKLOGGER_HOST_URL=https://:8000
MOCKLOGGER_APP_ID="My Application"
MOCKLOGGER_APP_KEY=c3ce75317d9c876d209a9f439b345345
MOCKLOGGER_APP_API_TOKEN=EomxCzUG0HFukdRWgKL26ThXuRstFTW

使用方法

安装并配置 MockLogger SDK 和环境后,现在您可以开始使用它来记录请求和响应数据。以下是使用 SDK 的两种方法

方法 1: 使用 sendLog

在您的 Terminable Middleware (Sunctum 受保护的 URL) 中使用此方法。

use Moktech\MockLoggerSDK\MockLogger;

class TerminableMiddleware
{
    protected $logger;

    public function __construct(MockLogger $logger)
    {
        $this->logger = $logger;
    }

    public function handle(Request $request, Closure $next): Response
    {
        return $next($request);
    }

    public function terminate(Request $request, Response $response)
    {  
        try {
            $this->logger->sendLog($request, $response);
        } catch (\Throwable $th) {
            Log::info($th->getMessage());
        }
    }
}

方法 2: 使用 sendData

您还可以手动组装请求和响应数据,并使用 sendData 方法来记录它。

use Moktech\MockLoggerSDK\MockLogger;

$data = [
    "request" => [
        'user' => [
            'name' => 'Kevin Muchwat',
            'email' => 'kevinmuchwat@gmail.com',
        ],
        'ip_address' => $request->ip(),
        'full_url' => $request->fullUrl(),
        'route_name' => $request->route()->getName(),
        'method' => $request->method(),
        'payload' => $request->all(),
        'agent' => $request->userAgent(),
    ],
    "response" => [
        'status_code' => $response->getStatusCode(),
        'content' => $response->getContent(),
        'format' => $response->headers->get('content-type'),
        'location' => $response->headers->get('location'),
    ],
];

$logger = new MockLogger();
$logger->sendData($data);

服务器健康监控

MockLogger SDK 允许您通过在 CPU、内存和硬盘空间上设置使用限制来保持最佳的服务器性能。如果超出任何这些限制,SDK 将自动将详细日志发送到在 config/mocklogger.php 中配置的管理员电子邮件。

return [
    ...
    // Configure server health monitor.
    'monitor' => [
        // Specify the web server service running, e.g., 'nginx' or 'apache2'.
        'server_service' => 'nginx',

        // Set email configuarations, default is 4 emails per 30mins interval.
        'email' => [
            // Set time interval to get emails (minutes), default is 30 minutes
            'interval' => 30,

            // Set number of emails to be sent in an interval, default is 4 emails.
            'count'  => 4,
        ],

        // Configure thresholds for resources.
        'thresholds' => [
            // Set the CPU usage threshold (percentage).
            'cpu_usage' => env('MOCKLOGGER_CPU_THRESHOLD', 90),

            // Set the memory usage threshold (percentage). 
            'memory_usage' => env('MOCKLOGGER_MEMORY_THRESHOLD', 80),

            // Set the hard disk drive usage threshold (percentage).
            'hard_disk_space' => env('MOCKLOGGER_HDD_THRESHOLD', 80),
        ],
    ],
]

要开始监控您的服务器,请运行此命令

php artisan mocklogger:monitor

为了持续监控,您可以使用 cron job 安排此命令。使用此工具轻松监控服务器。