我的应用程序的环境:基于Web,Spring MVC +安全性,Hibernate,MySQL(InnoDB)
我正在开发一个从Web界面操作的小型数据库应用程序。有特定和已知的用户处理存储的数据。现在,我需要跟踪用户在数据库上执行的每个创建/更新/删除操作,并从中生成简单的“类似列表”的报告。截至目前,我正在考虑一个“日志”表(列:userId + timestamp + description等)。我想在这个表中插入日志行的任何C(R)UD操作都可以触发一个方面。但我不确定这是怎么做的。
我也知道通常的MySQL日志以及log4j。至于日志文件,我可能需要比MySQL可用的信息更多的信息。 Log4j可能是一个解决方案,但我不知道它是如何写入MySQL表的。另外,我想在我的日志表中保留一些关联(例如用户ID),让db进行基本的过滤等。对此的方向表示赞赏。
你会推荐什么?在Hibernate / Spring中是否有任何内置支持,或者log4j是正确的方法吗?
谢谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
您是否考虑过使用MappedSuperclass进行C(R)UD操作日志记录?
@MappedSuperclass
public class BaseEntity {
@Basic
@Temporal(TemporalType.TIMESTAMP)
public Date getLastUpdate() { ... }
public String getLastUpdater() { ... }
...
}
@Entity class Order extends BaseEntity {
@Id public Integer getId() { ... }
...
}
答案 2 :(得分:0)
如果你去寻找日志解决方案并寻找自己做的事情,尝试搜索JDBCAppender,它并不完美,但应该有效。
如果您想要现成产品进行集中式日志记录 - 请考虑尝试logFaces - 它可以直接写入您自己的数据库(披露:我是此产品的作者。)