企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
操作日志的记录是基于行为扩展的 ##配置 日志记录是支持自动水平分表的,`max_rows` 配置项用于配置每个表记录的最大日志数,每个表大于此记录数会自动分表,一旦配置请不要再修改,否则可能发生一些不可预料的意外 ``` return [ 'max_rows' => 2000000, // 单表最大纪录值 'not_record_controller' => ['Index'], // 不记录的控制器 'not_record_map' => ['AdminGroup/index'], // 不记录的节点图 'web_log_table' => 'web_log', // 操作日志存储表 ]; ``` >[info] `not_record_controller` 请严格按照 `\think\Request::instance()->controller()` 方法返回的字符串格式来配置 >`not_record_map` 请严格按照节点图的格式来配置 ##初始化 ###建立 web_log 单表 表名后缀必须是 `_001`,否则自动水平分表会出现错误 ``` CREATE TABLE `tp_web_log_001` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '日志主键', `uid` smallint(5) unsigned NOT NULL COMMENT '用户id', `ip` char(15) NOT NULL COMMENT '访客ip', `location` varchar(255) NOT NULL COMMENT '访客地址', `os` varchar(255) NOT NULL COMMENT '操作系统', `browser` varchar(255) NOT NULL COMMENT '浏览器', `url` varchar(255) NOT NULL COMMENT 'url', `module` char(6) NOT NULL COMMENT '模块', `map` varchar(255) NOT NULL COMMENT '节点图', `is_ajax` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否是ajax请求', `data` text NOT NULL COMMENT '请求的param数据,serialize后的', `otime` int(10) unsigned NOT NULL COMMENT '操作时间', PRIMARY KEY (`id`), KEY `uid` (`uid`), KEY `ip` (`ip`), KEY `map` (`map`), KEY `otime` (`otime`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='网站日志'; ``` >[info] 一定要保证表引擎是 MyISAM ,不然无法建立联合表,自动水平分表用到了 MyISAM 的 MERGE 引擎 ###建立 web_log 联合表 ``` CREATE TABLE `tp_web_log_all` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '日志主键', `uid` smallint(5) unsigned NOT NULL COMMENT '用户id', `ip` char(15) NOT NULL COMMENT '访客ip', `location` varchar(255) NOT NULL COMMENT '访客地址', `os` varchar(255) NOT NULL COMMENT '操作系统', `browser` varchar(255) NOT NULL COMMENT '浏览器', `url` varchar(255) NOT NULL COMMENT 'url', `module` char(6) NOT NULL COMMENT '模块', `map` varchar(255) NOT NULL COMMENT '节点图', `is_ajax` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否是ajax请求', `data` text NOT NULL COMMENT '请求的param数据,serialize后的', `otime` int(10) unsigned NOT NULL COMMENT '操作时间', KEY `id` (`id`), KEY `uid` (`uid`), KEY `ip` (`ip`), KEY `map` (`map`), KEY `otime` (`otime`) ) ENGINE=MRG_MyISAM DEFAULT CHARSET=utf8 INSERT_METHOD=LAST UNION=(`tp_web_log_001`); ``` >[info] 表引擎是 MERGE ##行为配置 开启行为配置后就自动记录了,查看记录的日志访问 `WebLog\index` 即可 ``` return [ 'module_init' => [ 'app\\admin\\behavior\\WebLog', ], ]; ``` >[info] 如果改动请修改 `app\admin\behavior\WebLog` 和 `\extend\WebLog.php` 两个文件