# 配置
除系统自带的日志菜单外,还可增加自定义的日志菜单。
# 配置文件
地址:根目录\yunj\config\log.php
默认配置参考:根目录\vendor\yunj\admincore-tp6\src\core\config\log.php
return [
// 记录日志,默认记录
// function类型,返回bool。true|其他 => 记录、false => 不记录
'is_record' => null,
// 分组
// 配置参考:vendor/yunj/admincore-tp6/src/core/config/log.php
// 配置/调整完成后需进入项目根目录执行命令:php think yunj:init-system-auths 重置系统权限(或进入权限管理页面执行列表右上角系统权限同步功能)
'types' => [
'all' => [
// 菜单标题
'title' => '....日志',
// 菜单图标class
'icon' => 'layui-icon-list',
// 表格
'table' => [
// 固定查询条件
'fixed_where' => function (array $filter) {
return [];
},
]
]
]
];
# 记录日志
可根据自身业务判断当前请求日志是否记录。
如:接口/admin/test/index
的请求日志不进行记录,则config\log.php
配置如下:
return [
// 记录日志,默认记录
// function类型,返回bool。true|其他 => 记录、false => 不记录
'is_record' => function () {
return !strstr(request()->baseUrl(), '/admin/test/index');
},
...
];
# 菜单配置
可根据自身业务需要配置单独的日志查询菜单。
配置key:当前日志菜单唯一标识
配置属性:
属性 | 类型 | 是否必须 | 说明 |
---|---|---|---|
title | string | 是 | 日志菜单标题 |
icon | string | 否 | 菜单图标class |
table | array | 否 | 表格配置 |
示例:
配置 | 侧边栏 | 权限 |
---|---|---|
![]() | ![]() | ![]() |
注意!配置文件调整后需要重新运行命令:php think yunj:init-system-auths
进行菜单初始化
# 菜单列表表格配置
属性 | 类型 | 是否必须 | 说明 |
---|---|---|---|
fixed_where | function | 否 | 固定查询条件。解释如下 |
可根据自身业务需要配置固定的数据查询条件。
如:只匹配DEMO用户相关的请求日志记录
use yunj\app\admin\enum\State;
use yunj\app\admin\model\AdminRouteRequest;
use yunj\app\admin\service\route\RouteService;
return [
'types' => [
'demo_user' => [
'title' => 'DEMO用户日志',
'icon' => 'layui-icon-list',
// 表格
'table' => [
// 固定查询条件
'fixed_where' => function (array $filter) {
// 获取DEMO用户相关的请求项ids
$routes = RouteService::getValidRoutes();
$routeDatas = [];
foreach ($routes as $route) {
if (strstr($route['base_url'],'demo/user') || strstr($route['base_url'],'demo/all-user')) {
$routeDatas[$route['id']] = $route;
}
}
$requests = app(AdminRouteRequest::class)->getOwnRowsToArray([
['route_id', 'in', array_keys($routeDatas)],
['state', '=', State::NORMAL],
]);
$requestIds = array_column($requests, 'id');
// 返回匹配的请求项ids的where条件数组
return [['request_id', 'in', $requestIds]];
},
]
],
]
];
# 配置生效
为了使新配制的日志管理生效,
需进入项目根目录执行命令:php think yunj:init-system-auths
重置系统权限;
或进入权限管理页面执行列表右上角系统权限同步功能。