• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 实例详解Laravel使用中间件记录用户请求日志

实例详解Laravel使用中间件记录用户请求日志

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Laravel中间件,用户请求日志等相关知识,希望对您有所帮助

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。


实例详解Laravel使用中间件记录用户请求日志


一、创建中间件

可以使用命令创建, 也可以直接创建

php artisan make:middleware 中间件名称(TraceRecordMiddleware)


二、注册中间件

因为不同版本的laravel注册中间价的方式不同, 这里以5.6版本为例

直接在项目 bootstarp/app.php 中添加以下代码即可

$app->middleware([    App\Http\Middleware\TraceRecordMiddleware::class]);


三、记录用户访问日志

其实中间价可以理解为请求拦截器

所以可以拦截用户请求前的数据, 以及用户请求后的响应数据

以下为基础的中间价模版

<?php namespace App\Http\Middleware; use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);         return $response;    }}


四、记录用户响应前数据

你只需要记录用户访问了哪些路由, 而不关系系统返回了哪些数据的话

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {                 //插入数据库日志表        SystemTraceRecord::create([            'method' => $request->getMethod(),            'secure' => $request->getScheme(),            'uri' => $request->getRequestUri(),            'port' => $request->getPort()        ]);         return $next($request);    }}


五、记录用户响应后数据

有时候你想要知道用户请求后, 系统返回了什么数据的话

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);                 //响应后插入数据        SystemTraceRecord::create([            'data' => json_encode($request->all(), JSON_UNESCAPED_UNICODE),            'response' => $response->getContent() ?: '',            'status' => $response->getStatusCode()        ]);         return $response;    }}


六、记录用户详情日志

有时候你需要知道是哪些用户访问的

也可以直接获取session数据

<?php namespace App\Http\Middleware; use App\Model\SystemTraceRecord;use Illuminate\Http\Request; /** * Class TraceRecordMiddleware * @package App\Http\Middleware */class TraceRecordMiddleware{    public function handle(Request $request, \Closure $next)    {        $response = $next($request);         $session = app('session');         SystemTraceRecord::create([            'user_id' => $session->get('user_info.id', '未知'),            'username' => $session->get('user_info.username', '未知'),            'method' => $request->getMethod(),            'secure' => $request->getScheme(),            'uri' => $request->getRequestUri(),            'response' => $response->getContent() ?: '',            'status' => $response->getStatusCode()        ]);         return $response;    }}


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 实例详解Laravel使用中间件记录用户请求日志

相关文章

  • Photoshop制作颓废的彩色立体字
  • DedeCMS关键词替换问题较完美解决方案
  • 微信小程序自定义tabbar组件
  • JS如何实现数组数据的上移下移
  • 怎么为WordPress小工具添加CSS类选项
  • 介绍centos7 bond的配置和调试
  • PhotoShop打造Wacom中国风熊猫创意广告海报制作教程
  • 18个你需要知道的JavaScript优化技巧
  • php构造方法和java构造方法有什么区别
  • phpcms v9添加热门搜索关键词的方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • CorelDRAW实例教程:绘制创意风格的游戏海报教程
    • array_values()在php中返回数组的操作实例
    • 带大家聊聊小程序中的几种页面传参方式
    • 介绍PHP + MySQL 实现数据分页显示
    • Photoshop设计颗粒质感艺术字教程
    • 5款优秀的在线表单设计器
    • 最新消息!WordPress 5.8开始将不再支持IE11浏览器
    • 详解angular中为HTML元素添加css类的几种方式
    • 详解PHP中高精度计时器HRTime扩展
    • WordPress 彻底移除后台“隐私”设置功能

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有