我经常遇到这两个词,但我没有发现它们有什么区别?我的意思是想知道它们可以互换使用还是两者之间存在一些差异? 谢谢。
日志记录通常意味着记录程序运行时发生的实现级别事件(调用方法、创建对象等)。因此,它专注于程序员感兴趣的事情
审计是关于记录域级事件:创建交易、用户执行操作等。在某些类型的应用程序(银行)中,有记录此类事件的法律义务。
差异更多在于使用而不是技术。
审计用于回答“谁做了什么?”的问题。以及可能的原因。日志记录更关注正在发生的事情。
存在一个技术问题,审计通常有法律要求。此外,审核通常是在应用程序内完成的,例如:有一个用户界面可以查看谁更改了哪些内容,因为用户/合规部门可能需要检查它。此外,审计可能有法律要求(一次写入 WORM 介质,使其无法被操纵,将数据保留 x 年)。
举个例子:我有一个交易应用程序。对订单的所有更改都会经过审核 - 您拥有 OrderStatus 和 OrderStatusHistory。这不是技术性的 - 历史记录是应用程序界面的一部分。
日志记录纯粹是技术性的。有时将其关闭,或者让管理员提取日志文件是完全可以的。
它们有显着不同。日志记录只是记录系统中发生的事件数据的抽象任务。如果您记录任何信息,那么您就是在记录。
然而,审计更为复杂。审核是检查日志的做法,目的是验证系统是否处于理想状态或回答有关系统如何达到特定状态的问题。当然,进行审核的一种方法是查看日志,但是您可以在没有日志的情况下进行审核(作为一个简单的示例,您可以直接询问用户他们是否对特定更改负责)。这不是一个好主意,因为日志记录通常是一种成本低廉的操作,不需要考虑替代方案。
我将审核日志视为企业所需的信息,以确定该用户在特定日期和时间对该用户发生的某些操作。它具有附加的商业价值,可以让您验证发生了什么。一般来说,审核日志会出于历史和合规性目的进行存档。
另一方面,普通日志记录技术合作伙伴所需的信息,以了解发生了什么或系统在特定事件期间的行为方式。它可以包含方法签名、哪些值作为输入传递、哪些值作为输出传递、以及是否存在异常、有关异常的更多信息等。业务不需要这些信息,可以关闭或可以根据需要减少记录的详细信息。这些信息基本上可以帮助开发或支持团队调试系统。
审计
示例:
2021-01-01T08:45:21 用户 4711 访问记录 0815
2021-02-02T12:13:45 收到新发票,guid 为 f456-87D2-...
记录
示例:
2021-01-01T08:45:21 方法 Foo.Bar() 发送 46kb 的请求到 https://...
2021-02-02T12:13:45 在服务器 server01.mydomain 上启动 id 为 4711 的侦听器
Logging正在跟踪哪个类调用哪个方法的流程让我们有不同类的A、B、C方法在X类中,A方法被调用到Y类B方法,B方法被调用到Y类c方法..像这样跟踪控制流程
审核将跟踪用户的活动。我们必须编写逻辑,然后系统会自动将数据插入/保存到审计表中。
让我们看一个login.jsp,我们可以输入用户名和密码,然后点击登录页面,然后控制转到逻辑servlet页面,服务方法将被调用,并在里面编写类似的逻辑
httpsession session=reg.getsession();
session.setAttribute("userId",uid);
即在数据库中我们将列作为
created_by
created_date
last_modified_by
last_modified_dt
审计意味着对日志记录进行积极的审查,恕我直言。没有日志记录就无法进行审计,但是您可以在没有审计的情况下进行日志记录。
审计跟踪是交易的不可磨灭的记录,而日志则用于检测错误,日志文件在一定时间内会出现