212 lines
4.8 KiB
Markdown
212 lines
4.8 KiB
Markdown
# 操作日志使用说明(简化版)
|
||
|
||
## 快速开始
|
||
|
||
### 最简单的使用方式
|
||
|
||
```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('模块名称', '操作名称', '错误信息');
|
||
```
|
||
|
||
就这么简单!
|
||
|