jacksmall/log-monitor

There is no license information available for the latest version (v1.1.1) of this package.

一个laravel 记录日志插件

v1.1.1 2025-05-23 16:08 UTC

This package is auto-updated.

Last update: 2025-05-23 16:16:44 UTC


README

1,安装
    composer require jacksmall/log-monitor
2. 发布
    php artisan vendor:publish --provider="JackSmall\LogMonitor\LogMonitorServiceProvider" --tag="logmonitor-config"
3. 配置
    配置文件在config/logmonitor.php
    配置文件中,有一个字段default,这个字段是用来记录日志的记录渠道,如果要切换,那么你需要修改这个字段
    目前支持的渠道有:
        1,redis - 默认 database - 0
4. 在本地的部署
    1. 安装predis
        composer require predis/predis
    2. 配置redis
        在config/database.php中,添加redis配置
    3. 新增laravel LogMonitorMiddleware
        在app/Http/Kernel.php中,添加LogMonitorMiddleware
LogMonitorMiddleware.php代码如下:
代码块:
    ```php 
        namespace App\Http\Middleware;
        
        use Closure;
        use Illuminate\Http\Request;
        use Illuminate\Http\Response;
        use Illuminate\Support\Str;
        use Jack\LogMonitor\Facades\LogMonitor;
        
        class LogMonitorMiddleware
        {
            /**
              * Handle an incoming request.
              *
              * @param  \Illuminate\Http\Request  $request
              * @param  \Closure  $next
              * @return mixed
              */
              public function handle($request, Closure $next)
              {
                $traceId = Str::random();
                $request->attributes->set('traceId', $traceId);
                return $next($request);
              }
            
              public function terminate(Request $request, Response $response)
              {
                  LogMonitor::log('INFO', 'success', [
                      'traceId' => $request->attributes->get('traceId'),
                      'method' => $request->method(),
                      'url'    => $request->fullUrl(),
                      'ip'     => $request->ip(),
                      'agent'  => $request->userAgent(),
                      'request'  => $request->all(),
                      'headers' => $request->headers->all(),
                      'status' => $response->status(),
                      'response' => $response->getContent()
                  ]);
              }
        }
    ```

5. 如何使用
    1. 在app/Http/Kernel.php中,添加LogMonitorMiddleware
    2. 在app/Http/Middleware/LogMonitorMiddleware.php中,添加terminate方法
    3. 在app/Http/Middleware/LogMonitorMiddleware.php中,添加handle方法
    4. 在app/Exceptions/Handler.php中,
    ```php
        public function report(Exception $exception)
        {
            LogMonitor::catchException($exception);
            parent::report($exception);
        }
    ```