业务审计日志 - 推荐的库或方法?

时间:2010-09-23 12:21:44

标签: java java-ee audit

你知道任何用于审计日志记录的优秀Java库吗?或者至少是好的书/文章,以帮助选择为应用程序构建审计日志的好方法?

图书馆要求:
- 定义通用审计元数据(userId,time,IP,...)
- 定义审计消息类型(发送的事务,收到的消息,......)
- 锁定/签署个人审核信息(用于不可否认性)
- 根据元数据搜索审核日志 - 等等。

编辑:
我不是在寻找自动化解决方案,我很满意这样的话:

AuditEvent event = new TransactionSentEvent(userId, account, amount, ...)
AuditLog.audit(auditEvent);

重点是拥有基础设施 - 安全存储到数据库,不具备声誉等。

5 个答案:

答案 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并绑定到不属于标准的框架。