对于企业应用程序,您是否仅为审计和调试目的编写事件/审计记录(除了将事务记录写入DB)?
如果您这样做,是将它们写入平面文件还是直接写入数据库?或两者?您捕获了哪些信息?
答案 0 :(得分:4)
这完全取决于您的业务需求。有时,企业要求记录每个项目的每个变化,按用户和时间。有些人需要记录并记录每个单独的读取数据。某些应用程序仅在某些数据类型更改时记录。这取决于你想要什么。捕获的合理信息是:谁,什么,什么时候......
审计记录通常不是技术性的,就像打印报表的方式一样;虽然您可以根据需要使用它们,但您不会从审计日志开始进行调试。但是正常的应用程序日志更适合调试问题,因为它们通常包含堆栈跟踪等等,而审计日志则不包含。
对于DB或平面文件,它又取决于。写入数据库对Hibernate / JPA特别有吸引力,因为您可以挂钩持久层的事件系统来生成审计事件。这是一个非常自然的映射,因为Hibernate / JPA具有“保存”,“更新”,“删除”等事件,正是您想要审核的事件。如果需求要求某些类型的用户能够查看日志信息,那么在DB中拥有数据也是有益的。此外,大多数企业定期备份日期,这也保留了审计信息。
另一方面,如果您只需要保留记录,就无法击败平面文件记录的简单性。