首页 > 其他分享 >laravel 利用中间件进行操作日志记录

laravel 利用中间件进行操作日志记录

时间:2023-03-23 12:32:57浏览次数:39  
标签:laravel Http log 中间件 request input 日志


利用中间件进行操作日志记录过程:

1、创建中间件

php artisan make:middleware AdminOperationLog

2、生成了文件./app/Http/Middleware/AdminOperationLog.php

代码如下:

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Http\Models\OperationLog;

class AdminOperationLog
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $user_id = 0;
        if(Auth::check()) {
            $user_id = (int) Auth::id();
        }
        $_SERVER['admin_uid'] = $user_id;
        if('GET' != $request->method()){
            $input = $request->all();
            $log = new OperationLog(); # 提前创建表、model
            $log->uid = $user_id;
            $log->path = $request->path();
            $log->method = $request->method();
            $log->ip = $request->ip();
            $log->sql = '';
            $log->input = json_encode($input, JSON_UNESCAPED_UNICODE);
            $log->save();   # 记录日志
        }
        return $next($request);
    }
}

3、中间件引入 ./app/Http/Kernel.php

protected $middlewareGroups = [
        'web' => [
            ...
            \App\Http\Middleware\AdminOperationLog::class,
            ...
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

此时进行操作时就会记录操作日志


标签:laravel,Http,log,中间件,request,input,日志
From: https://blog.51cto.com/sdwml/6144712

相关文章

  • laravel 利用监听器进行sql语句记录
    利用监听器进行sql语句记录1、监听sql语句的事件类已经定义,直接创建监听器类即可:#监听sqlmake:listenerQueryListener--event=Illuminate\Database\Events\QueryExecute......
  • 消息队列之日志处理
    消息队列之日志处理应用场景:大型电商网站(淘宝、京东、国美、苏宁...)、App(抖音、美团、滴滴等)等需要分析用户行为,要根据用户的访问行为来发现用户的喜好以及活跃情况,需要......
  • 使用OpenSearch 构建日志监控与管理平台
    基于Windows平台环境搭建:步骤一:在OpenSearch官方网站下载Windows平台最新安装包,写作时当前最新版本是2.6.0,也可直接通过以下链接直接下载:OpenSearch下载: https://ar......
  • 爬取的数据,存到mysql中、爬虫和下载中间件、加代理,cookie,header,加入selenium、去重规
    目录0爬取的数据,存到mysql中1爬虫和下载中间件2加代理,cookie,header,加入selenium2.1加代理2.2加cookie,修改请求头,随机生成UserAgent2.3集成selenium3去重规则源码......
  • Docker限制日志文件大小办法
    1.新建/etc/docker/daemon.json,如果存在就不用重新创建了,内容如下{"log-driver":"json-file","log-opts":{"max-size":"500m","max-file":"3"}}max-size=500......
  • MyBatis学习日志
    在pom.xml导入依赖<dependencies><!--导入mysql驱动jar包--><dependency><groupId>mysql</groupId><artifactId>mysql......
  • 框架、模式、架构、构件、组件、中间件概要
    简单来说:框架(Framework)解决某一方面应用问题的半成品软件模式(Pattern)为解决某一类问题而提出的一种解决方案,是方法论。架构(Architecture)整体解决方案......
  • NginxWeb服务器定时切割日志shell脚本
    Nginx定时切割日志定时切割方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。Nginx不支持像Apache一样使用cronolog来轮转日志,但是可以采用以下方式来实现日......
  • IIS 部署网站 Log4net日志没有写入
    前提:Log4net日志写入是开启状态,并且相关的配置文件完整无异常 可能原因:网站文件相关用户没有写入的权限操作步骤右键网站=》编辑权限=》安全=》选择User用户=》编辑=......
  • 服务器sel日志结合mcelog分析故障主要针对CPU以及内存
    两个CPU平台介绍:Grantley以及Purley建议装最新的mcelog工具到系统下,mcelog-help查看支持的平台两个关键要素:1.CPU位置和BANK位置可以使用命令:cat/proc/cpuinfo|......