1、要求的系统功能
系统采用spring + hibernate。
对对象的属性修改进行记录,记录的内容包括:类名、对象ID、修改时间、修改的属性名、修改前的值和修改后的值。
对新增对象的属性进行记录。记录的内容包括:类名、对象ID、增加时间、属性名、插入的值。
对删除对象的属性进行记录。记录的内容包括:类名、对象ID、删除时间、属性名、值。
另外的要求,只对某一些类进行记录。如果有一个类如Order,它有Order Line,那么OrderLine的修改应该归入Order类中。
2、实现:
a)新建一个接口,Logable,
b)新建hibernate的监听类,用来监听onSave,onFlushDirty, onDelete, afterTransactionComminted四个方法
分别用来:取得对象的插入数据、对象的更新数据、对象的删除数据、在成功commit后将写log。(关于这部份的操作,我们让HistoryStorage类来做)
在spring的配置文件中,关于hibernate的配置中加入这个监听器。
从spring的源码中,我们可以看到:这个监听器是属于session的,所以不用做异步处理。
c)我们在HistoryStorage中,都是将属性转化成String格式,然后存储在N个EntityLog类中(有多少个Logable对象进行修改,就有多少个EntityLog)。
d)写log。要有两个步骤:写数据库和将操作信息写进文件进行存储。
将EntityLog保存成json的格式。存储的地点根据对应的存储方式来决定。(对象的存储方式在配置文件中设定)
由存储方式生成存储路径,并将json数据写入之后,将类名、对象ID、操作类型(增删改)和存储路径写入数据库。
e)读log。有两种方式的读log:读对象的修改统计和某一次修改的具体信息
读修改统计:从log数据表中读出log信息。
读一次的具体修改信息:从存储路径读出json数据,转化为EntityLog对象,用户自定义输出格式。
这其中,用户可以自定义的地方是:
1、LogWriter/LogReader:getPath和write方法/parsePath和reader方法
2、用户页面如何显示Log的统计和log的详细信息
明天贴代码
分享到:
相关推荐
RocCms更新日志: 数据缓存机制 邮箱详细内容页列出和此人对话的前10条记录以便查看历史 管理员操作日志功能 首次安装不用进入安装文件,进入首页自动判断 系统设置增加是否启用邮件系统与找回密码的邮件内容...
监听程序进程需要一个监听地址, 以便处理系统所用的各个网络协议的连接请求。 除非 MTS_MULTIPLE_LISTENERS=TRUE, 否则每个条目都必须有一个独立的相邻值。此参数自 8.1.3 版起已废弃 语法 : (ADDRESS=(PROTOCOL=...
密级: 数据库设计规范 (oracle版本) <文档编号> "版 本 号 " "发布日期 " " "修 改 人 " "修改日期 " " "审 核 人 " "审核日期 " " "审 批 人 " "审批日期 " " 修订记录 "版本号 "发布日期 "修改人/修 "审核人/...
Windows NT中的审核(Audit)事件简介 规划并实现审核策略 打开文件、文件夹及打印机的审核功能 使用事件查看器检查审核事件 安全性日志(Securty Log)的归档 使用服务器管理器查看正在使用的资源 断开用户与服务器的...
parkerhemphill / godaddy-...如果该IP地址与外部IP不匹配,则会推送一个curl POST来更新DNS记录3:容器启动和对DNS记录的任何更改都记录在容器内部的/ tmp / <DOMAIN> -log中,此目录可以导出以使日志在容器外部可用
8.3.4 FTP的日志文件—/var/log/ xferlog 149 8.4 FTP管理工具 149 8.4.1 ftpshut 149 8.4.2 ftpwho 150 8.4.3 ftpcount 150 8.5 使用FTP客户程序 150 8.5.1 autoexpect 152 8.5.2 ncftp 152 8.5.3 tftp 153 8.5.4 ...
<29>eventlog 以下这些SERVICE只能在NT SERVER上使用 << 1>> )file server for macintosh <<2>>gateway service for netware <<3>>microsoft dhcp server <<4>>print server for macintosh <<5>>...
CT6013 CT6013 S1707031(“主要”分公司2) ... 笔记: 自定义日志记录可用,并且当前位于您的glassfish配置(在我们的示例中为domain1)下: (glassfish位置)\ glassfish \ domains \ domain1 \
(1)将BIOS中计算机启动时的系统引导顺序修改为CD-ROM、C、A或CD-ROM、A、C。 (2)根据系统提示进行安装操作 方法四安装步骤 (1) 首先将计算机内的BIOS设置为从CD-ROM启动,把Windows 2000 Server安装盘放入...
变更日志 v1.0.2-2019年1月17日 -UI更改; -对PHP信号发送器的次要修复; v1.0.1-2019年1月15日 -添加了WordPress插件; -增加了在iframe或新标签页中打开视频窗口的可能性; -修复样式和脚本; v1.0.0-2019年1月12日...
/// 事件日志记录类,提供事件日志记录支持 /// /// 定义了4个日志记录方法 (error, warning, info, trace) /// /// public class ApplicationLog { /// /// 将错误信息记录到Win2000/NT...
/// 事件日志记录类,提供事件日志记录支持 /// /// 定义了4个日志记录方法 (error, warning, info, trace) /// /// public class ApplicationLog { /// /// 将错误信息记录到Win2000/NT事件日志中 /// 需要记录...
HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
, UBJSON , XML和YAML 数据库: Firebird Embedded , SQL和SQLite 3 电子表格: Microsoft Excel电子表格, Office Open XML工作簿和OpenDocument电子表格表格文字: CSV和TSV 变更记录更改详细记录在更改日志中...
添加事件源的主要好处是可跟踪更改,例如可以在审核日志记录中使用。 此外,过去发生的“不正确”事件(例如由于错误)可以通过使当前数据“正确”的事件来补偿,因为这是基于事件的。 从主题的主要作者/贡献者之...
而如果活动目录中的资源对应的是LDAP标识,那么只需要DNS中有这个标识的定位记录就可以很方便地供用户查找资源,并寻址到相应的位置上。' u* [+ L2 m- \ j: h: L. r7 u 有关DNS服务器的配置,读者可以参考《电脑报...
3.6.2 日志记录(logging)和环境 3.7 grails命令行工具 3.7.1 在不同的端口上运行grails应用程序 3.7.2 打包war存档文件(warcarchive) 3.8 使用grails控制台(console)及命令解释程序...
如果设置为 N 表示不通过 dbstart 和 dbshut 启动和关闭实例数据库 CAMS 系统要求在 安装完 ORACLE 后要求将该参数修改为 Y 以保证 ORACLE 数据库自启动 和关闭 1.2.3 数据库实例初始化...
-在前后历史记录上使用滑动手势时,请在Mac OS X中的Google Chrome动画之后更改动画箭头。版本1.7.3(2011年11月23日)-很少调整链接扫描程序以覆盖某些站点。版本1.7.2(2011年11月4日)-链接扫描程序现在可扫描...