IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> http 请求增加 X-Request-ID -> 正文阅读

[网络协议]http 请求增加 X-Request-ID

namespace log\processor;


use Request;

class RequestProcessor
{
    public function __invoke($record)
    {
        $extra = [
            'method' => Request::method(),
            'path' => Request::pathinfo()
        ];
        if (Request::header('X-Request-ID')) {
            $extra['uid'] = Request::header('X-Request-ID');
        } else {
            $extra['uid'] = app('requestId');
        }
        $record['extra'] = $extra;
        return $record;
    }
}

app(‘requestId’); 是将 请求方式写到了 app 容器中,也就是全局里

创建 requestId

use Monolog\Processor\UidProcessor;

    'requestId' => function () {
        return (new UidProcessor(32))->getUid();
    },

在请求日志中添加

use Monolog\Formatter\JsonFormatter;
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use Monolog\Processor\PsrLogMessageProcessor;
use log\processor\RequestProcessor;

\Psr\Log\LoggerInterface::class => function () {
        $date = date_create();
        // prepare for stream handler
        $folder = Env::get('MONOLOG_PATH') . $date->format('Ym');
        $day = $date->format('d');
        $hour = $date->format('H');
        $seg = $day . '.' . ceil($hour / 6);
        if (PHP_SAPI === 'cli') {
            $suffix = '_cli';
        } else {
            $suffix = '';
        }
        $logFileName = $folder . '/' . $seg . $suffix . '.log';
        $handler = new StreamHandler($logFileName);
        $handler->setFormatter(new JsonFormatter());

        $handlers = [
            $handler
        ];
        $processors = [
            new RequestProcessor(),
            new PsrLogMessageProcessor()
        ];
		// 注意后面两个参数的使用
        $logger = new Logger('jsboss3', $handlers, $processors);

        return $logger;
    },
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 12:07:35  更:2022-02-26 12:10:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/5 13:21:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码