操作日志的記錄是基于行為擴展的
##配置
日志記錄是支持自動水平分表的,`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` 兩個文件
- 概要
- 開始使用
- 寫在前面
- 目錄結構
- 模板主題支持
- 前置方法before支持
- 數據返回
- 異常接管
- Rbac 權限管理
- 開始使用
- 用戶管理
- 分組管理
- 節點管理
- 角色管理
- 使用流程
- 其他
- 代碼自動生成 v1.2
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 示例三 - 從數據表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模擬命令行模式
- 代碼自動生成
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 控制器
- 公共控制器
- traits 多繼承 Controller
- 公開不授權控制器
- 其他控制器
- 標簽擴展
- 模板
- 網站操作日志
- 節點圖
- 行為驅動
- 其他后端方法
- Excel一鍵導出
- Excel一鍵導入
- 文件下載
- 郵件發送
- 七牛文件上傳
- id加密
- 前端
- ajax請求
- 表單校驗
- 豐富彈層
- 異步操作
- 表格溢出
- 隨機字符串
- 自動面包屑導航
- 動態加載文件
- 文件上傳
- Tab 切換
- 圖片預覽
- 二維碼生成
- 日歷組件
- 升級指導
- 更新日志
- FAQ