# 操作日志使用说明(简化版) ## 快速开始 ### 最简单的使用方式 ```php // 记录成功日志 $this->logSuccess('文件管理', '创建文件分组', ['id' => $id]); // 记录失败日志 $this->logFail('文件管理', '创建文件分组', $e->getMessage()); ``` 就这么简单!只需要两行代码。 ## 完整示例 ### 示例1:创建文件分组 ```php public function createFileCate() { try { $data = Request::param(); $data['create_time'] = date('Y-m-d H:i:s'); $id = FilesCategory::insertGetId($data); // 记录成功日志 $this->logSuccess('文件管理', '创建文件分组', ['id' => $id]); return json([ 'code' => 200, 'msg' => '新建文件分组成功', 'data' => ['id' => $id] ]); } catch (\Exception $e) { // 记录失败日志 $this->logFail('文件管理', '创建文件分组', $e->getMessage()); return json([ 'code' => 500, 'msg' => '新建文件分组失败: ' . $e->getMessage() ]); } } ``` ### 示例2:删除文件 ```php public function deleteFile($id) { try { Files::where('id', $id)->delete(); // 记录成功日志 $this->logSuccess('文件管理', '删除文件', ['id' => $id]); return json(['code' => 200, 'msg' => '删除成功']); } catch (\Exception $e) { // 记录失败日志 $this->logFail('文件管理', '删除文件', $e->getMessage()); return json(['code' => 500, 'msg' => $e->getMessage()]); } } ``` ### 示例3:添加用户 ```php public function addUser() { try { $data = Request::param(); $userId = AdminUser::insertGetId($data); // 记录成功日志 $this->logSuccess('用户管理', '添加用户', ['id' => $userId]); return json(['code' => 200, 'msg' => '添加成功']); } catch (\Exception $e) { // 记录失败日志 $this->logFail('用户管理', '添加用户', $e->getMessage()); return json(['code' => 500, 'msg' => $e->getMessage()]); } } ``` ## 方法说明 ### BaseController 提供的方法 所有继承 `BaseController` 的控制器都可以使用以下方法: #### 1. `logSuccess()` - 记录成功日志 ```php $this->logSuccess(string $module, string $action, array $responseData = []) ``` **参数:** - `$module`: 模块名称(如:文件管理、用户管理等) - `$action`: 操作名称(如:创建文件分组、删除文件等) - `$responseData`: 响应数据(可选,如:`['id' => 123]`) **示例:** ```php $this->logSuccess('文件管理', '创建文件分组', ['id' => $id]); ``` #### 2. `logFail()` - 记录失败日志 ```php $this->logFail(string $module, string $action, string $errorMessage) ``` **参数:** - `$module`: 模块名称 - `$action`: 操作名称 - `$errorMessage`: 错误信息 **示例:** ```php $this->logFail('文件管理', '创建文件分组', $e->getMessage()); ``` #### 3. `logOperation()` - 完整版(需要更多控制时使用) ```php $this->logOperation( string $module, string $action, array $requestData = [], array $responseData = [], int $status = 1, string $errorMessage = '' ) ``` ## 直接使用 OperationLogger 类 如果不继承 BaseController,可以直接使用: ```php use app\admin\common\OperationLogger; // 记录成功 OperationLogger::success('文件管理', '创建文件分组', ['id' => $id]); // 记录失败 OperationLogger::fail('文件管理', '创建文件分组', $e->getMessage()); // 完整版 OperationLogger::record( '文件管理', '创建文件分组', Request::param(), // 请求数据(可选) ['id' => $id], // 响应数据(可选) 1, // 状态:1-成功,0-失败 '' // 错误信息(可选) ); ``` ## 模块和操作命名建议 ### 模块名称: - 文件管理 - 用户管理 - 角色管理 - 文章管理 - 菜单管理 - Banner管理 - 单页管理 - 系统设置 ### 操作名称: - 创建文件分组 - 重命名文件分组 - 删除文件分组 - 上传文件 - 删除文件 - 移动文件 - 添加用户 - 编辑用户 - 删除用户 - 修改密码 - 等等... ## 注意事项 1. **自动获取**:请求数据会自动获取,无需手动传递 2. **敏感信息过滤**:密码、token 等敏感信息会自动过滤 3. **错误处理**:日志记录失败不会影响主业务流程 4. **按需记录**:只在需要记录的操作中添加日志代码 ## 总结 **推荐使用方式:** ```php // 成功时 $this->logSuccess('模块名称', '操作名称', ['响应数据']); // 失败时 $this->logFail('模块名称', '操作名称', '错误信息'); ``` 就这么简单!