• 循序渐进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
    【推荐】大型组态、工控、仿真、CADGIS 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)
    最新评论

    1. 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

    --翘中之楚
    阅读排行榜

    1. layui监听input内容变动简单粗暴(1188)
    2. Spring中的八大设计模式 (139)
    3. list和set的区别(96)
    4. 第九期作业(95)
    5. 第六期作业(67)
      评论排行榜
    6. 第六期作业(2)
    7. 第四期作业(2)
    8. 第二期作业(1)
      推荐排行榜
    9. list和set的区别(1)
  • 相关阅读:
    Android自启动
    Eclipse导出Javadoc文件
    MAC 下Java Android 环境配置
    MAC 下如何切换Android模拟器的横竖屏
    程序员 需要掌握得600个英语单词
    网络编程 套接字socket 及 粘包
    网络编程 文件传输 基于UDP的socket serversocket
    网络编程 之 网络协议
    面向对象之:反射, 双下方法
    面向对象之 类的成员与异常处理
  • 原文地址:https://www.cnblogs.com/clearlove007/p/14527096.html
Copyright © 2020-2023  润新知