首页 > 编程语言 >php简单实现 接口请求日志

php简单实现 接口请求日志

时间:2022-08-29 09:55:39浏览次数:56  
标签:接口 filename content param path 日志 php type

先看使用效果

 

执行代码:

public function mainLogic()
{
   logs();    // 在接口开始时调用,可以放到父类的构造方法里面
   // 接口逻辑....
}

请求参数:

日志:

 

封装的代码:

 

/**
     * 写入日志
     * @param array | string $content 日志内容
     * @param string $filename        文件名
     * @param string $type            自定义标签
     * @param bool $isDistinguishDay  是否区分天存放
     * @return bool|int
     */
    public static function log($content, $filename, $type = 'info', $isDistinguishDay = true)
    {
        $path = dirname(__DIR__). '/runtime/myLog/';  // 自定义路径

        if (!file_exists($path)) {
             @mkdir($path, 0755);    // 权限设置
        }

        if ($isDistinguishDay) {
            $logFile = $path . $filename . "-" . date("Ymd") . ".log";
        } else {
            $logFile = $path . $filename  . ".log";
        }

        if (is_array($content) || is_object($content)) {   // 便于一些数组传参
            $content = json_encode($content);
        }

        $date = date("Y-m-d H:i:s");
        return file_put_contents($logFile, $date . " [$type] " . $content . PHP_EOL, FILE_APPEND);
    }



// 日志记录
function logs()
{
    $type = strtolower(\request()->method());   // 识别请求方式

    $logMsg = "请求者的ip是 ".\request()->server()['REMOTE_ADDR']." ,    
               当前请求类型是:".$type.' ,接口是:'.\request()->url().' ,
               请求参数是'.json_encode(input("$type."),JSON_UNESCAPED_UNICODE);

    \Common::log($logMsg, 'commonLog');     // 调用上面的方法
}

 

标签:接口,filename,content,param,path,日志,php,type
From: https://www.cnblogs.com/jaychou-/p/16628513.html

相关文章

  • (一)jedis 接口之 KeyCommands
    publicinterfaceKeyCommands{booleanexists(Stringvar1);longexists(String...var1);longpersist(Stringvar1);Stringtype(String......
  • Flask 学习-23.restful 接口开发
    前言Flask-RESTful是一个Flask扩展,它添加了快速构建RESTAPIs的支持。它当然也是一个能够跟你现有的ORM/库协同工作的轻量级的扩展。Flask-RESTful鼓励以最小设置......
  • 2022DAS_April warmup_php
    wp思路先简单代码审计一下,发现它是个渲染HTML表格的东西。可利用的RCE在Base::evaluateExpression中,类之间基本都有继承关系。回调函数在这段代码里也有挺多。利用链:Act......
  • 黑马_10、使用 Express 写接口
    使用Express写接口步骤如下1创建基本的服务器代码://导入expressconstexpress=require('express')//创建服务器实例constapp=express()//writeyourco......
  • 5-主机侧日志抓取方法
    1.     optionRom日志抓取方法        UEFI是在主机侧运行,排查UEFI的问题,尤其是驱动的问题,不仅需要会获取ioc侧的日志,也需要获取主机侧的日志,也就是UEFI程......
  • 硬盘的总类于接口划分
    1.     硬盘的种类与接口划分前言:作为存储研发人员,少不了数据的处理,硬盘作为存储数据的主要介质,是我们必须要深入了解的。下面介绍几个硬盘的基础概念。1.1. ......
  • logging 日志设置后不显示
    问题描述之前logging可以正常显示info层级信息,现在只有一条包升级的warning,日志文件也无法创建问题定位当第一次logging记录之后,logging的basicconfig就无法生效了(较......
  • Apache日志 LogFormat参数说明
    Apache日志LogFormat参数说明第2页_服务器应用_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2013-09/89741p2.htm在Apache的配置文件httpd.conf里默......
  • Apache中按天分割日志(Windows)
    Apache中按天分割日志(Windows)-/折磨-博客园 https://www.cnblogs.com/lh460795/p/6709395.html网上很多资料都有对Apache的access.log按天生成的方法,但在Windows......
  • Apache日志配置详解(rotatelogs LogFormat)
    Apache日志配置详解(rotatelogsLogFormat)-小秒-博客园 https://www.cnblogs.com/cp-miao/p/5725717.htmllogs/error_logCustomLoglogs/access_logcommon--默......