[Laravel系列] 框架中增加记录access log的日志中间件
2023-02-18 15:36:13 时间
有时候我们需要记录下请求和响应的全部参数
这样可以方便排查问题
现在通过中间件的形式增加一个AccessLog的记录功能
app\Http\Middleware目录下增加AccessLog.php 文件
<?php namespace App\Http\Middleware; use Closure; class AccessLog { /** * 路由全局中间件 * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $requestTime = microtime(true); $response = $next($request); $rq_time = microtime(true) - $requestTime; $log = [ 'method' => $request->method(), 'url' => $request->fullUrl(), 'param' => json_encode($request->all(), JSON_UNESCAPED_UNICODE), 'response' => $response->getContent(), 'req_header' => json_encode($request->header(), JSON_UNESCAPED_UNICODE), 'resp_header' => json_encode($response->headers->all(), JSON_UNESCAPED_UNICODE), 'ip_address' => $request->ip(), 'rq_time' => sprintf("%.2f", $rq_time), ]; logger()->channel('access')->info($log); return $response; } }
app/Http/Kernel.php 注册一下\App\Http\Middleware\AccessLog::class
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 = [ // \App\Http\Middleware\TrustHosts::class, \App\Http\Middleware\TrustProxies::class, \Fruitcake\Cors\HandleCors::class, \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, \App\Http\Middleware\AccessLog::class ];
增加一下配置
config/logging.php
'access' => [ 'driver' => 'daily', 'path' => env('LOG_PATH_ACCESS', storage_path('logs/access/laravel.log')), 'level' => env('LOG_LEVEL', 'debug'), 'days' => 14, ],
请求一下就会看到生成文件
相关文章
- 真的够可以的,基于Netty实现了RPC框架
- Tampermonkey for Mac(油猴Safari浏览器插件) 4.17中文版
- Netflix 检测脚本合集,一键检测IP解锁范围及对应的的地区
- Flagger 在 Kubernetes 集群上是如何工作的?
- 网络编程学习笔记8-对netcat压力测试
- 网络编程学习笔记9-第一个netcat的实现(thread-per-connection)
- 靶机练习 - Tr0ll -2(提权)
- 靶机练习 - Tr0ll -1
- 靶机练习 - 温故知新 - Toppo(sudo 提权)
- 漏洞复现 -“核弹”漏洞-Log4j2 JNDI注入(CVE-2021-44228)
- 漏洞复现 - Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)
- CTF - 攻防世界 - mobile新手 - 新工具
- CTF - 攻防世界 - mobile新手 - app3
- CTF - 攻防世界 - mobile新手 - app2
- CTF - 攻防世界 - mobile新手 - app1
- 移动安全 - 敏感信息安全 - SQLite
- 移动安全 - 敏感信息安全 - SharedPreferences
- 移动安全 - 敏感信息安全 - 文件存储权限和logcat日志
- 移动安全 - 应用完整性校验
- 文件上传靶场upload-labs闯关笔记