【问题标题】:Business Audit log - recommended library or approach? [closed]业务审计日志 - 推荐的库或方法? [关闭]
【发布时间】:2011-04-16 06:00:41
【问题描述】:

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

库要求:
- 定义通用审计元数据(userId、时间、IP、...)
- 定义审计消息类型(发送的事务、接收的消息……)
- 锁定/签署个人审计消息(用于不可否认性)
- 基于元数据搜索审计日志
- 等等。

编辑:
我不是在寻找自动化的解决方案,我很乐意调用类似的东西:

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

关键是要有其背后的基础设施 - 安全存储到数据库、非信誉等。

【问题讨论】:

    标签: java jakarta-ee audit


    【解决方案1】:

    所以,如果你正在寻找一个框架,你可以试试logback-audit。它是由 Java 日志库背后的人编写的,logback

    【讨论】:

    • 注意:logback-audit 是一个商业软件
    【解决方案2】:

    如果你使用 Java,一种方法是使用 springframework 和 aop。这是最灵活的选择。 Here is an example

    你也可以在数据库级别使用休眠(more info)

    【讨论】:

    • 如果我必须再做一次,我会这样做。但是,您必须非常干净地 构建您的业务逻辑,因为方法拦截并不总是为您提供在方法中获得的详细信息(例如,如果您在方法中查找帐户并想要审计一些非-id 帐户的属性(如当前值)它对拦截器不可用 - 因此您必须将方法分成两部分 - 以便您要审核的所有属性都在方法拦截器范围内。
    • 感谢您的回答 - 事实上,我更多的是寻找“更高级别”的审计而不是方法或类级别。
    • 这个答案对我很有帮助,我更喜​​欢选择休眠选项。 ;)
    【解决方案3】:

    这个https://github.com/dima767/inspektr怎么样? 我的要求与您上面描述的几乎相同,并且正在深入研究 inspektr。

    【讨论】:

    • 酷,这正是我一直在寻找的!
    【解决方案4】:

    您可以通过注解在没有 Spring 的情况下使用 AscpectJ 库

    【讨论】:

    • 是的,这是真的,忘记提了。谢谢。
    【解决方案5】:

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

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2010-11-05
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 2010-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多