zyan/laravel-logs

一个记录laravel用户请求的日志中间件

2.1.1 2022-04-07 03:34 UTC

This package is auto-updated.

Last update: 2024-04-07 07:55:54 UTC


README

一个记录laravel用户请求的日志中间件

要求

  1. php >= 7.2
  2. Composer

安装

composer require zyan/laravel-logs -vvv

配置

然后去 config/logging.php 配置日志通道

return [
    //...
    'request' => [
        'enabled' => true, //是否启用
        'channel' => ['stack'], //通道
        'environment' => ['local','testing'] //环境
    ]
];

中间件

请在 app/Http/Kernel.php 中添加默认的中间件

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;
use Zyan\LaravelLogs\Middleware\RequestLogs; //使用默认中间件


class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        RequestLogs::class, //全局使用
        //...
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            RequestLogs::class, //在web中使用
            //...
        ],

        'api' => [
            RequestLogs::class, //在api中使用
            //...
        ],
    ];
    //...
}

自定义

自已手动添加一个中间件

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;
use Zyan\LaravelLogs\Logs;

class RequestLogs
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);
    
        try {
            $logs = new Logs();
            $logs->request()->response($response)->write();
            //按需配置你需要记录的信息
            //->request() 记录请求信息s
            //->response($response) 记录返回日志
            //->write() 执行写入
        }catch (\Exception $e){
            Log::error($e->getMessage().' '.$e->getFile().":".$e->getLine());
        }
    
        return $response;
    }
}

暂不支持sql日志 需要记录sql查询移步 https://github.com/overtrue/laravel-query-logger

参与贡献

  1. fork 当前库到你的名下
  2. 在你的本地修改完成审阅过后提交到你的仓库
  3. 提交 PR 并描述你的修改,等待合并

License

MIT license