thinkphp6自定义日志驱动,增加显示全部请求信息

本文展示了如何在ThinkPHP框架中自定义日志驱动,通过修改配置文件指定自定义驱动`Tp6Log`,该驱动在记录日志时会包含请求信息、时间戳以及SQL等详细日志,并能按日志类型分别记录到不同的文件中,便于后期分析和调试。

关键是两个,1是修改配置文件,指定自定义的驱动。2是自定义驱动的save方法
直接上代码

config/log.php

<?php

// +----------------------------------------------------------------------
// | 日志设置
// +----------------------------------------------------------------------
return [
    // 默认日志记录通道
    'default'      => env('log.channel', 'file'),
    // 日志记录级别
    'level'        => [],
    // 日志类型记录的通道 ['error'=>'email',...]
    'type_channel' => [],
    // 关闭全局日志写入
    'close'        => false,
    // 全局日志处理 支持闭包
    'processor'    => null,
    //ThinkPHP对系统的日志按照级别来分类记录,按照PSR-3日志规范,日志的级别从低到高依次为: debug, info, notice, warning, error, critical, alert, emergency,ThinkPHP额外增加了一个sql日志级别仅用于记录SQL日志(并且仅当开启数据库调试模式有效)。
    // 日志通道列表
    'channels'     => [
        'file' => [
            // 日志记录方式
            //'type'           => 'File',
            'type'           => '\app\driver\log\Tp6Log',
            // 日志保存目录
            'path'           => '',
            // 单文件日志写入
            'single'         => false,
            // 独立日志级别
            'apart_level'    => ['error', 'sql','user','fun','pay','refund','order','cancelBadOrder','ar','job'],
            // 最大日志文件数量
            'max_files'      => 0,
            // 使用JSON格式记录
            'json'           => false,
            // 文件大小
            'file_size'   	=> 	1024*1024*2,
            // 日志处理
            'processor'      => null,
            // 关闭通道日志写入
            'close'          => false,
            // 日志输出格式化
            'format'         => '[%s][%s] %s',
            // 是否实时写入
            'realtime_write' => true,
        ],
        // 其它日志通道配置
    ],

];

app\drive\log\Tp6Log.php

<?php
declare (strict_types=1);

namespace app\driver\log;

use DateTime;
use DateTimeZone;
use Exception;
use think\App;
use think\contract\LogHandlerInterface;
use think\facade\Request;

/**
 * 本地化调试输出到文件
 */
class Tp6Log implements LogHandlerInterface
{
   
   
    /**
     * 配置参数
     * @var array
     */
    protected $config = [
        'time_format' => 'c',
        'single' => false,
        'file_size' => 2097152,
        'path' => '',
        'apart_level' => [],
        'max_files' => 0,
        'json' => false,
        'json_options' => JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES,
        'format' => '[%s][%s] %s',
    ];

    protected $app;

    // 实例化并传入参数
    public function __construct(App $app, $config = [])
    {
   
   
        $this->app = $app;

        if (is_array($config)) {
   
   
            $this->config = array_merge($this->config, $config);
        }

        if (empty(
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值