循序渐进VUE+Element 前端应用开发(31)--- 系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志(转载)
原文地址
https://www.cnblogs.com/wuhuacong/p/14230493.html
在一个系统的权限管理模块中,一般都需要跟踪一些具体的日志,ABP框架的系统的日志管理,包括登录日志、接口访问日志、实体变化历史日志,本篇随笔介绍ABP框架中这些日志的管理和界面处理。
1、系统登录日志
在系统每次登录的时候,我们需要记录具体的登录信息,这个一般是系统最基础的日志管理。
ABP框架提供基础的登录日志管理,用户在进行登陆鉴权的时候,会自动记录对应的日志,存储在记录表AbpUserLoginAttempts中,我们只需要把它提取出来进行展示即可。
我们在Vue前端,定义BaseApi类,然后继承它实现基础的接口即可。
列表展示的Vue端的JS逻辑代码如下所示。
复制代码
复制代码
复制代码
getlist() { // 列表数据获取
var param = { // 构造常规的分页查询条件
SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize,
MaxResultCount: this.pageinfo.pagesize,
// 过滤条件
UserNameOrEmailAddress: this.searchForm.UserNameOrEmailAddress
};
// 使用日期范围选择控件,在查询对象增加开始日期CreationTimeStart、结束日期CreationTimeEnd
this.addDateRange(param, this.searchForm.creationTime)
// 获取产品列表,绑定到模型上,并修改分页数量
this.listLoading = true
loginlog.GetAll(param).then(data => {
this.list = data.result.items
this.pageinfo.total = data.result.totalCount
this.listLoading = false
})
},
复制代码
复制代码
复制代码
2、接口访问日志
ABP框架是一个后端的Web API框架,因此需要跟踪每个接口的具体访问,包括具体的请求参数和结果等信息,一般我们对接口进行跟踪和优化管理等等。
ABP框架的接口访问日志,也是系统基础提供的记录日志,它在每次系统接口被调用的时候拦截记录,记录信息存储在AbpAuditLogs中,同样我们只需要提取出来进行展示即可。
具体的一条接口访问日志查看界面如下所示。
接口访问日志,也就是审计日志的前端调用对象和登录日志的处理类似,只是根据需要增加一些实现的接口。
同样界面的列表获取展示逻辑JS代码如下所示。
复制代码
复制代码
复制代码
getlist() { // 列表数据获取
var param = { // 构造常规的分页查询条件
SkipCount: (this.pageinfo.pageindex - 1) * this.pageinfo.pagesize,
MaxResultCount: this.pageinfo.pagesize,
// 过滤条件
UserNameOrEmailAddress: this.searchForm.UserNameOrEmailAddress
};
// 使用日期范围选择控件,在查询对象增加开始日期CreationTimeStart、结束日期CreationTimeEnd
this.addDateRange(param, this.searchForm.creationTime)
// 获取产品列表,绑定到模型上,并修改分页数量
this.listLoading = true
auditlog.GetAll(param).then(data => {
this.list = data.result.items
this.pageinfo.total = data.result.totalCount
this.listLoading = false
})
},
复制代码
复制代码
复制代码
3、实体修改历史日志
除了上面两种日志外,还有一种是在数据对象发生变化的时候,进行的记录,叫做实体修改(变化)历史记录,记录存放在表AbpEntityChanges、AbpEntityChangeSets和AbpEntityPropertyChanges中。
实体修改历史日志如下界面所示。
打开可以详细查看实体类的属性变化列表,如下界面所示。
实体修改历史记录,系统默认是关闭,需要的话可以在项目模块的配置中打开,如下代码所示即可。
//配置实体修改历史
Configuration.EntityHistory.IsEnabled = Constants.EntityHistoryEnabled;
//使用基类实现IFullAudited的实体类,记录修改历史
Configuration.EntityHistory.Selectors.Add(new NamedTypeSelector("IFullAudited",
type => typeof(IFullAudited).IsAssignableFrom(type)));
以上这些类型的日志,都是ABP框架基础接口提供的拦截记录日志,我们只需要根据具体的对象获取记录进行展示即可,非常方便。
好文要顶 已关注 收藏该文
如花ya
关注 - 2
粉丝 - 12
我在关注他 取消关注
00
« 上一篇: 在C/C++中static有什么用途?(请至少说明两种)
» 下一篇: 循序渐进VUE+Element 前端应用开发(30)--- ABP后端和Vue+Element前端结合的分页排序处理(转载)
posted @ 2021-01-05 16:32 如花ya 阅读(37) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
发表评论
编辑
预览
支持 Markdown
自动补全
退出 订阅评论 我的博客
[Ctrl+Enter快捷键提交]
【推荐】阿里云实时计算 Flink 训练营重磅开启,4天技能突破,抢天猫精灵!
【推荐】阿里云春招即将开始,提前下载面试宝典稳拿Offer
【推荐】大型组态、工控、仿真、CAD\GIS 50万行VC++源码免费下载!
【推荐】免费领最高6000元好云礼!15种权益祝你云气爆棚
【推荐】阿里云Java训练营,名师带你5天实战Spring Boot 2.5,抢智能音箱
【推荐】注册 Amazon Web Services(AWS) 账号,成为博客园赞助者
【推荐】华为HMS Core Discovery直播间-七个推送技巧带你玩转App运营
AWS免费产品:
· 如何在AWS上免费构建网站
· AWS免费云存储解决方案
· 在AWS上免费构建数据库
· AWS上的免费机器学习
最新新闻:
· 胡晓明辞任蚂蚁集团CEO:未来将负责社会公益项目
· 互联网反腐风暴再起,滴滴解职并拉黑收受茅台礼赠员工
· 腾讯ROG游戏手机5幻影首发体验:18GB 运存旗舰,玩游戏有多爽?
· 业务下滑、转型不顺、拖薪裁员,是什么拖垮了GoFun?
· OPPO Find X3 Pro首发体验:它给了我「亿」点颜色看看
» 更多新闻...
公告
昵称: 如花ya
园龄: 5个月
粉丝: 12
关注: 2
-取消关注
< 2021年3月 >
日 一 二 三 四 五 六
28 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
java(18)
随笔档案
2021年1月(67)
2020年12月(9)
2020年11月(2)
2020年10月(12)
最新评论
- Re:第六期作业
ra.nextInt(100)+1的范围是
num大于等于1,小于100;也就是小于等于99;
--翘中之楚
2. Re:第六期作业
随机数(范围包含1和99)
从0开始 包头不包尾 是不是应该是ra.nextInt(99)+1啊
--翘中之楚
3. Re:第四期作业
666
--翘中之楚
4. Re:第四期作业
大哥读题很仔细
--翘中之楚
5. Re:第二期作业
666
--翘中之楚
阅读排行榜
- layui监听input内容变动简单粗暴(1188)
- Spring中的八大设计模式 (139)
- list和set的区别(96)
- 第九期作业(95)
- 第六期作业(67)
评论排行榜 - 第六期作业(2)
- 第四期作业(2)
- 第二期作业(1)
推荐排行榜 - list和set的区别(1)