分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

ASP.NET全栈开发日志模块之操作日志的设计

发布时间:2023-09-06 02:06责任编辑:苏小强关键词:.NET

应用程序中的日志大致分为三种

第一种:用于生产模式下追中bug的异常日志。(这类日志相信大家都懂)

第二种:用于记录重要操作的行为日志。(这类日志主要作用是溯源,行为主要有三种:增、删、改)

第三种:用于记录历史浏览的消息日志。(这类日志主要记录用户的浏览痕迹)

消息日志和行为日志有点相似,都有溯源的作用,但它们区别很明显。

消息日志记录的是所有操作信息,比如 “gxqsd 登录了 系统 2018-7-27 23:46:10” , "gxqsd 访问了用户管理首页", “gxqsd 查看了 liming 的个人信息”,总而言之他更像一句话,也像是浏览记录,我们针对每一个消息日志存储一个Url就能依次回溯。(所以消息日志不包含对数据的操作,那属于行为日志)

行为日志主要是记录数据的变化,比如 "gxqsd 新增了一个角色 " 这时候触发了新增操作,我们希望将这个行为记录下来,如果只是记录了 “gxqsd 新增了一个角色” 那显然他就有点像消息日志了,但它又不能用于做历史记录。所以作为行为日志最重要的是要记录数据的变化。因此针对 "gxqsd 新增了一个角色”,正确的办法应是将新增的角色实体信息存储下来。

接下来用一张简单的图来描述数据库表之间的关系。

我们定义一个日志记录表Logging,每一行数据表示一条行为日志。用LogDataDetial表示行为日志的详细信息

其中Logging表中TargetId表示实体操作的目标对象,比如"gxqsd create a new user" TableName 则是"User" 而TargetId则表示这个新增的用户的Id,通过Table和TargetId我们最终就能在追溯的时候定位到具体实体。

LogDataDetail表就挺简单的了,Logging表示每一条行为日志,而每一个行为日志所改变的数据是以实体为单位的,实体又有多个字段,为了能详细追踪实体数据的变化,LogDataDetail将实体的每一个属性分解成犹如键值对的形式。又通过LogId将他们与具体行为日志关联起来。而每一个Logging又与操作用户关联起来。

ASP.NET全栈开发日志模块之操作日志的设计

原文地址:https://www.cnblogs.com/Gxqsd/p/9380325.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved