luofei614 / SocketLog

微信调试、API调试和AJAX的调试的工具,能将日志通过WebSocket输出到Chrome浏览器的console中
1.13k stars 300 forks source link

thinkphp6 中 log.php这里面大家是怎么配置的 #55

Open m-dnxbf opened 3 years ago

m-dnxbf commented 3 years ago

`<?php

// return [
//     'type'                => 'SocketLog',
//     'host'                => 'localhost',
//     //日志强制记录到配置的client_id
//     'force_client_ids'    => [ 'abcdefg' ],
//     //限制允许读取日志的client_id
//     'allow_client_ids'    => [ 'abcdefg' ],
// ];

// +---------------------------------------------------------------------- // | 日志设置 // +----------------------------------------------------------------------

return [ // 默认日志记录通道 'default' => env( 'log.channel', 'socketlog'), // 日志记录级别 'level' => [], // 日志类型记录的通道 ['error'=>'email',...] 'type_channel' => [], // 关闭全局日志写入 'close' => false, // 全局日志处理 支持闭包 'processor' => null,

// 日志通道列表
'channels'     => [
    'file' => [
        // 日志记录方式
        'type'           => 'File',
        // 日志保存目录
        'path'           => '',
        // 单文件日志写入
        'single'         => false,
        // 独立日志级别
        'apart_level'    => [],
        // 最大日志文件数量
        'max_files'      => 0,
        // 使用JSON格式记录
        'json'           => false,
        // 日志处理
        'processor'      => null,
        // 关闭通道日志写入
        'close'          => false,
        // 日志输出格式化
        'format'         => '[%s][%s] %s',
        // 是否实时写入
        'realtime_write' => false,
    ],

    // 其它日志通道配置
    'socketlog' => [
        'type'                => 'SocketLog',
        'host'                => 'localhost',
        //日志强制记录到配置的client_id
        'force_client_ids'    => [ 'abcdefg' ],
        //限制允许读取日志的client_id
        'allow_client_ids'    => [ 'abcdefg' ],
    ],
],

]; ` 我的是这样的,在网上找了很多资料,不管怎么改,就是不成功。只能来问问大家有在thinkphp6中使用成功的吗

luofei614 commented 3 years ago

ThinkPHP6 自己添加socketlog的方法: 讲slog.php和 slog.function.php放入 app目录。 编辑app/event.php:

include 'slog.function.php';
slog([
    'enable' => true,
    //是否打印日志的开关
    'host' => 'localhost',
    //websocket服务器地址,默认localhost
    'optimize' => false,
    //是否显示利于优化的参数,如果运行时间,消耗内存等,默认为false
    'show_included_files' => false,
    //是否显示本次程序运行加载了哪些文件,默认为false
    'error_handler' => false,
    //是否接管程序错误,将程序错误显示在console中,默认为false
    'force_client_id' => isset($_GET['slog']) ? $_GET['slog'] : '',
    //日志强制记录到配置的client_id,默认为空
    'allow_client_ids' => [],
], 'config');

return [
    'bind'      => [

    ],

    'listen'    => [
        'AppInit'  => [
function(){

    //监听
    \think\facade\Db::listen(function ($sql, $time, $explain) {
        // 记录SQL
        slog($sql . ' [' . $time . 's]', 'trace');
        if ($time >= 0.1) {
            slog('sql执行时间长', 'error');
        }
        if (!empty($explain)) {
            $arr = array_change_key_case($explain, CASE_LOWER);
            if (false !== strpos($arr['extra'], 'Using filesort')) {
                slog('Using filesort', 'error');
            }
 if (!empty($explain)) {
            $arr = array_change_key_case($explain, CASE_LOWER);
            if (false !== strpos($arr['extra'], 'Using filesort')) {
                slog('Using filesort', 'error');
            }
            if (false !== strpos($arr['extra'], 'Using temporary')) {
                slog('Using temporary', 'error');
            }
        }
    });

}
],
....