tp/docs/operation_log_usage_simple.md
2026-01-26 09:29:36 +08:00

212 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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