hulang/think-log-driver

The ThinkPHP 8.0.0 log driver Package

2.0.0 2023-07-05 12:50 UTC

This package is auto-updated.

Last update: 2024-04-05 14:32:00 UTC


README

环境

  • php >=8.0.0
  • ThinkPHP ^8.0

安装

  1. 安装think-log-driver
composer require hulang/think-log-driver

使用

  1. 更改配置
    config/log.php 中的配置修改
// 日志记录方式
// 日志通道列表

    'channels'     => [
        'file'=>[],
        'database' => [
            // 日志记录方式
            'type'           => 'Database',
            // 大于0.05秒的sql将被记录
            'slow_sql_time'  => 0.5,
            // 记录日志的数据库配置,即在database.php中的driver
            // 如果设置该值为'default',则使用系统数据库的实例
            'db_connect'     => 'default', //mongodb 
            // 记录慢日志查询的数据表名
            'db_table'       => 'log_sql',
            // 忽略的操作,在以下数据中的操作不会被记录
            'action_filters' => [
                // 'index/Index/lst'
            ],
            // 日志保存目录
            'path'           => '',
            // 单文件日志写入
            'single'         => false,
            // 独立日志级别
            'apart_level'    => [],
            // 最大日志文件数量
            'max_files'      => 0,
            // 使用JSON格式记录
            'json'           => false,
            // 日志处理
            'processor'      => null,
            // 关闭通道日志写入
            'close'          => false,
            // 日志输出格式化
            'format'         => '[%s][%s] %s',
            // 是否实时写入
            'realtime_write' => false,
        ],
],
  1. 创建数据库
    用于记录日志的mysql数据表,如果使用mongodb则无需创建
DROP TABLE IF EXISTS `th_log_sql`;
CREATE TABLE `th_log_sql`  (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `year` int(4) NULL DEFAULT 0 COMMENT '',
  `month` int(2) NULL DEFAULT 0 COMMENT '',
  `day` int(2) NULL DEFAULT 0 COMMENT '',
  `host` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '请求的Host',
  `url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '请求的URL',
  `ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT 'IP',
  `method` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '提交方式',
  `app` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '应用',
  `controller` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '控制器',
  `action` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '方法',
  `runtime` decimal(10, 3) UNSIGNED NOT NULL DEFAULT 0.000 COMMENT '运行时长',
  `sql_list` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT 'SQL语句',
  `param` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '参数',
  `create_date` datetime NULL DEFAULT NULL COMMENT '添加时间',
  `create_time` int(11) NULL DEFAULT 0 COMMENT '添加时间戳',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `runtime`(`runtime`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;