你知道任何用于审计日志记录的优秀Java库吗?或者至少是好的书/文章,以帮助选择为应用程序构建审计日志的好方法?
图书馆要求:
- 定义通用审计元数据(userId,time,IP,...)
- 定义审计消息类型(发送的事务,收到的消息,......)
- 锁定/签署个人审核信息(用于不可否认性)
- 根据元数据搜索审核日志
- 等等。
编辑:
我不是在寻找自动化解决方案,我很满意这样的话:
AuditEvent event = new TransactionSentEvent(userId, account, amount, ...)
AuditLog.audit(auditEvent);
重点是拥有基础设施 - 安全存储到数据库,不具备声誉等。
答案 0 :(得分:11)
因此,如果您正在寻找框架,可以尝试logback-audit。由Java日志记录库支持的是logback。
答案 1 :(得分:4)
如果您使用Java,一种方法是使用springframework和aop。这是最灵活的选择。 Here is an example
您也可以使用hibernate (more info)
在数据库级别执行此操作答案 2 :(得分:1)
您可以在没有Spring的情况下使用AscpectJ库,通过注释
答案 3 :(得分:1)
这个https://github.com/dima767/inspektr怎么样 我的要求几乎与你上面描述的相同,我正在深入研究检查。
答案 4 :(得分:0)
业务/操作级别日志记录的一种好方法是确定您需要记录的内容。你已经做到了。
您不需要添加任何新框架或AOP。但是,您有一些额外的要求会阻止您使用常见的日志记录框架,例如Log4J或java.util.logging,而无需创建更多工作。
我能想到的最简单的方法是让一个在其中注入或配置JDBC连接的Audit类。如果您已经在使用该框架,则可以通过Spring完成此操作。如果您没有DI容器,则需要将其定义为单例。
您需要的另一件事是签名能力。 Java有一个java.security.Signature来签名和验证数据。
正如我之前所说,您的要求会阻止您使用可用的日志记录框架。那就是:
为便于搜索,您需要将数据存储在数据库中,因为写入文本文件将很困难。使用日志框架,您必须学习API并绑定到不属于标准的框架。