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

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

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

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

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

重点是拥有基础设施 – 数据库安全存储,无信誉等。

怎么样这个https://github.com/dima767/inspektr我有几乎与你上面描述的相同的要求,我正在挖掘检查。

因此,如果您正在寻找框架,您可以尝试logback-audit 。 它是由Java日志库背后的人员进行的。

如果您使用Java,一种方法是使用springframework和aop。 这是最灵活的选择。 这是一个例子

您也可以使用hibernate在数据库级别执行此操作(更多信息)

您可以通过注释使用没有Spring的AscpectJ库

业务/操作级别日志记录的一种好方法是确定您需要记录的内容。 你已经做到了。

您实际上不需要添加任何新框架或AOP。 但是,您有一些额外的要求会阻止您使用常见的日志记录框架,如Log4J或java.util.logging,而无需创建更多工作。

我能想到的最简单的方法是让一个在其中注入或配置JDBC连接的Audit类。 如果您已经在使用该框架,则可以通过Spring完成此操作。 如果您没有DI容器,则需要将其定义为单例。

您需要的另一件事是签名能力。 Java有一个java.security.Signature来签名和validation数据。

正如我之前所说,您有一些要求会阻止您使用可用的日志记录框架。 那是:

  • 根据元数据搜索审核日志

为了便于搜索,您需要将数据存储在数据库中,因为写入文本文件将很困难。 使用日志框架,您必须学习API并绑定到不属于标准的框架。