2013-08-22 59 views
0

在我的Web应用程序(java/tomcat/struts/mysql)中保留用户更改日志的最佳方式是什么?我给出帐户,每个帐户都有多个用户。我希望帐户管理员能够在任何给定时间看到谁做了什么。我希望能够访问它的全部内容。首先,我需要一种方法来了解哪些字段已被更改,然后我需要在每个帐户可以看到的地方记录更改。很明显,我不想让应用放慢速度。我在这个网站上阅读了一个答案,建议保留一个数据库日志 - 在发送每个查询后查询数据库的变化。不知道该怎么做。在Web应用程序中保存用户更改的日志

回答

1

这取决于您的Web应用程序的性质。假设您的Web应用程序是一个电子商务系统,它允许用户添加新产品或更新现有产品。当用户执行添加新产品等特定操作时,其基本目标是捕获其用户名,操作和时间戳。更新产品时,您可能想要跟踪他更新的价值,旧价值和他什么时候改变价值。

要做到这一点,首先你需要

  1. 创建一个审计表

    • 显然要跟踪上次修改人,时间戳,通过创建等
  2. 每当执行一些更改/操作时创建一个日志记录机制。

    • 有几种方法可以做到这一点,你可以通过应用程序来做到这一点,或将所有事情都留给数据库触发器。我建议使用触发器来检测数据库中的任何创建/更新/删除事件,并要求触发器捕获细节并写入审计表。我认为这是最简洁和维护少的方式。但是,如果要使用应用程序登录,则必须更改代码,创建新方法以将详细信息捕获到操作类中的审核表。在MySQL触发

更多信息here

-1

我一直在寻找一个类似“法”来记录交易和其他的东西在我的web应用程序。就在浏览Google时,我发现这个链接: https://www.owasp.org/index.php/Logging_Cheat_Sheet告诉你两种可能的登录方式:无论是在数据库还是在某些日志文件的文件系统上......

当使用文件系统中,优选使用单独的 分区比那些由操作系统使用的,其它的应用程序 文件和用户生成的内容对于基于文件的日志,应用关于严格 权限的用户可以访问目录以及目录中的文件的权限在Web应用程序中, 日志不应在Web可访问位置公开,并且如果已完成 ,则应该具有受限访问权限并使用纯文本配置 MIME键入(不是HTML)使用数据库时,最好 使用单独的数据库仅用于编写日志 数据并具有非常严格的数据库,表格,功能和 命令权限使用标准格式通过安全协议 记录并将事件数据或日志文件发送到其他系统,例如,通用 系统日志上的日志文件系统(CLFS),通用事件格式(CEF),未来可能的公共事件表达式(CEE);标准格式 方便与集中式日志记录服务

整合他们已经解释精美的可能的方式,我们可以登录,什么应该被记录下来,避免什么了。

希望它对你有用。

相关问题