首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在web应用程序中记录用户操作?

如何在web应用程序中记录用户操作?
EN

Stack Overflow用户
提问于 2009-04-29 21:54:06
回答 3查看 1.1K关注 0票数 1

我的应用程序的环境:基于网络的、Spring MVC+Security、Hibernate、MySQL(InnoDB)

我正在开发一个从web界面操作的小型数据库应用程序。有特定的已知用户处理存储的数据。现在,我需要跟踪用户在数据库上执行的每个创建/更新/删除操作,并从中生成简单的“列表”报告。到目前为止,我正在考虑一个“日志”表(列: userId +时间戳+描述等)。我猜在这个表中插入一个日志行的任何C(R)UD操作都会触发一个方面。但我不确定这是不是应该这样做。

我也知道通常的MySQL日志和log4j。至于日志文件,我可能需要比MySQL可用的更多的信息。Log4j可能是一种解决方案,但我看不出它如何能够写入MySQL表。另外,我希望在我的日志表中保留一些关联(例如用户id),让数据库做基本的过滤等。

你有什么推荐的?Hibernate/Spring中有没有内置的支持,或者log4j是正确的选择吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-29 21:58:29

  1. Log4j是模块化的,如果你愿意,你可以编写自己的后端将日志写入数据库;事实上,它甚至提供了一个开箱即用的JDBC appender,不过请注意那里的红色大警告。
  2. Hibernate,你可能可以在
    1. 上构建一些东西,跟踪所有修改,并将它们记录到一个特殊的审计表中。
票数 2
EN

Stack Overflow用户

发布于 2009-04-29 22:22:43

您是否考虑过使用MappedSuperclass进行C(R)UD操作日志记录?

代码语言:javascript
运行
复制
@MappedSuperclass
public class BaseEntity {
@Basic
@Temporal(TemporalType.TIMESTAMP)
public Date getLastUpdate() { ... }
public String getLastUpdater() { ... }
...
}

@Entity class Order extends BaseEntity {
@Id public Integer getId() { ... }
...
}
票数 1
EN

Stack Overflow用户

发布于 2009-04-29 22:02:00

如果你想要日志记录解决方案,并希望自己动手做,试着搜索JDBCAppender,它不是很完美,但应该可以工作。

如果您想要现成的产品进行集中日志记录-考虑尝试logFaces -它可以直接写入您自己的数据库(披露:我是此产品的作者。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/804449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档