4.8 KiB
4.8 KiB
操作日志使用说明(简化版)
快速开始
最简单的使用方式
// 记录成功日志
$this->logSuccess('文件管理', '创建文件分组', ['id' => $id]);
// 记录失败日志
$this->logFail('文件管理', '创建文件分组', $e->getMessage());
就这么简单!只需要两行代码。
完整示例
示例1:创建文件分组
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:删除文件
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:添加用户
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() - 记录成功日志
$this->logSuccess(string $module, string $action, array $responseData = [])
参数:
$module: 模块名称(如:文件管理、用户管理等)$action: 操作名称(如:创建文件分组、删除文件等)$responseData: 响应数据(可选,如:['id' => 123])
示例:
$this->logSuccess('文件管理', '创建文件分组', ['id' => $id]);
2. logFail() - 记录失败日志
$this->logFail(string $module, string $action, string $errorMessage)
参数:
$module: 模块名称$action: 操作名称$errorMessage: 错误信息
示例:
$this->logFail('文件管理', '创建文件分组', $e->getMessage());
3. logOperation() - 完整版(需要更多控制时使用)
$this->logOperation(
string $module,
string $action,
array $requestData = [],
array $responseData = [],
int $status = 1,
string $errorMessage = ''
)
直接使用 OperationLogger 类
如果不继承 BaseController,可以直接使用:
use app\admin\common\OperationLogger;
// 记录成功
OperationLogger::success('文件管理', '创建文件分组', ['id' => $id]);
// 记录失败
OperationLogger::fail('文件管理', '创建文件分组', $e->getMessage());
// 完整版
OperationLogger::record(
'文件管理',
'创建文件分组',
Request::param(), // 请求数据(可选)
['id' => $id], // 响应数据(可选)
1, // 状态:1-成功,0-失败
'' // 错误信息(可选)
);
模块和操作命名建议
模块名称:
- 文件管理
- 用户管理
- 角色管理
- 文章管理
- 菜单管理
- Banner管理
- 单页管理
- 系统设置
操作名称:
- 创建文件分组
- 重命名文件分组
- 删除文件分组
- 上传文件
- 删除文件
- 移动文件
- 添加用户
- 编辑用户
- 删除用户
- 修改密码
- 等等...
注意事项
- 自动获取:请求数据会自动获取,无需手动传递
- 敏感信息过滤:密码、token 等敏感信息会自动过滤
- 错误处理:日志记录失败不会影响主业务流程
- 按需记录:只在需要记录的操作中添加日志代码
总结
推荐使用方式:
// 成功时
$this->logSuccess('模块名称', '操作名称', ['响应数据']);
// 失败时
$this->logFail('模块名称', '操作名称', '错误信息');
就这么简单!