操作日志
9¥
类型
应用插件
版本
1.0.0
版本更新时间
2023-04-02
大小
10.37 KB
开发商
Chance
评分
问题反馈
https://www.workerman.net/q/11077
详细介绍
记录管理员对数据的增删改操作以及请求信息,生成的操作日志可读性高。
安装使用
该插件依赖 webman admin
不要直接将代码复制到项目中,在后台插件市场安装
- 直接在 admin 的插件市场安装应用
- 在 admin 的
middleware.php
配置文件中增加一个全局中间件plugin\oplog\app\middleware\AfterOperationLog::class
- 使用的是 Laravel 的 ORM
- 修改
config/bootstrap.php
配置文件,增加plugin\oplog\bootstrap\LaravelHookConnection::class
- 修改
- 使用的是 ThinkPHP 的 ORM
- 修改数据库配置文件中的
type
、query
、builder
三个字段
例如:<?php return [ 'default' => 'mysql', 'connections' => [ 'mysql' => [ // 服务器地址 'hostname' => 'mysql', // 数据库名 'database' => 'webman_admin', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => 'root', // 数据库连接端口 'hostport' => 3306, // 数据库连接参数 'params' => [ // 连接超时3秒 \PDO::ATTR_TIMEOUT => 3, ], // 数据库编码默认采用utf8 'charset' => 'utf8mb4', // 数据库表前缀 'prefix' => '', // 断线重连 'break_reconnect' => true, // 关闭SQL监听日志 'trigger_sql' => true, // 自定义分页类 'bootstrap' => '', // 数据库类型 'type' => \Chance\Log\orm\think\MySqlConnection::class, // 指定查询对象 "query" => \Chance\Log\orm\think\Query::class, // Builder类 "builder" => \think\db\builder\Mysql::class, ], ], ];
- 修改数据库配置文件中的
- 使用的是 Laravel 的 ORM
- 执行
php webman TableModelMapping
命令生成表与模型的映射关系 - restart
日志主键
可在模型中设置$logKey
属性修改需要记录的主键名称。
<?php
namespace Chance\Log\Test\model;
class User extends BaseModel
{
// 日志记录的主键名称
public string $logKey = 'id';
}
可读性设置
通过表注释、字段注释与获取器来生成可读性的日志。
表注释与字段注释
也可以在模型中通过$tableComment
与$columnComment
设置表注释与字段注释。
<?php
namespace Chance\Log\Test\model;
class User extends BaseModel
{
// 表注释
public $tableComment = '用户';
// 字段注释
public $columnComment = [
'name' => '姓名',
'sex' => '性别',
];
}
获取器
设置一个名为字段名_text
的获取器。
<?php
namespace Chance\Log\Test\model;
class User extends BaseModel
{
// Laravel ORM 获取器设置方法
public function getSexTextAttribute($key): string
{
return ['女','男'][($key ?? $this->sex)] ?? '未知';
}
// ThinkPHP ORM 获取器设置方法
public function getSexTextAttr($key): string
{
return ['女','男'][($key ?? $this->sex)] ?? '未知';
}
}
日志生成忽略的字段
可在模型中通过 $ignoreLogFields
设置该表不希望生成日志的字段。
<?php
namespace Chance\Log\Test\model;
class User extends BaseModel
{
// 日志生成忽略的字段
public $ignoreLogFields = [
'create_time',
'update_time',
];
}
数据表不生成日志
可在模型中通过 $doNotRecordLog
设置该表不在生成日志。
<?php
namespace Chance\Log\Test\model;
class User extends BaseModel
{
// 不生成该表的日志
public $doNotRecordLog = true;
}
版本历史记录
1.0.0
2023-04-02
操作日志
评分及评论
4
满分5分
a8469758 2023-07-13
好多日志都不记录啊
xiewen_kevin 2023-06-06
这安装使用流程文档怎么感觉没写明白一样?下载下来的文件夹都不样
i165 2023-06-03
安装好复杂
yuyu 2023-05-09
有bug