pbweb/audit-bundle

Symfony的PB Web Media审计包

安装: 6 609

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 4

分支: 0

开放问题: 0

类型:symfony-bundle

3.2.1 2024-04-10 14:11 UTC

This package is auto-updated.

Last update: 2024-09-10 15:02:51 UTC


README

提供易于扩展的Symfony Bundle以创建审计日志。

安装

使用composer安装audit-bundle

composer require pbweb/audit-bundle

使用

要向审计日志中插入条目,创建一个AuditEvent并将其传递给AuditLog

$event = new \Pbweb\AuditBundle\Event\AuditEvent('test');
$log = $container->get('pbweb_audit.audit_log');
$log->log($event);

您也可以创建自己的事件(我们推荐这样做),只要它们实现了AuditEventInterface

流程

事件进入审计日志,然后按以下顺序触发以下事件(以提供的AuditEventInterface事件为参数)

  1. Pbweb\AuditBundle\Event\AppendAuditEvent
  2. 类的名称为$event
  3. Pbweb\AuditBundle\Event\LogAuditEvent

这样,您可以在通用流程时刻挂钩,或者仅响应特定事件。

审计包使用Symfony事件系统,因此在处理这些事件时,所有正常的操作(如监听器优先级、停止传播等)都有效。

事件追加器

事件通常不完整,您可能想要追加一些与事件相关的数据,例如触发事件的用户或客户端的IP地址。

为此,请监听Pbweb\AuditBundle\Event\AppendAuditEvent事件(通过监听器订阅者)。它将接收所有进入审计日志的AuditEventInterface事件。

默认事件追加器

审计包附带了一些默认加载的事件追加器,您可以在下面的配置部分中了解如何禁用。

如果您使用这些追加器,则需要将symfony/security添加到您的项目中。

日志记录器

最终,审计日志条目需要存储在某个地方,无论是数据库、PSR日志记录器还是您能想到的任何东西。

审计包附带了一个PSR日志记录器和Doctrine日志记录器(见下文)。

您还可以通过监听Pbweb\AuditBundle\Event\LogAuditEvent事件来实现自己的日志记录器。它将接收所有进入审计日志的AuditEventInterface事件。

PSR日志记录器

默认情况下,审计包加载了PsrLogger,它将使用@logger服务将事件记录到您的默认日志。请参阅下面的配置部分了解如何禁用此行为。

Doctrine日志记录器

对于小(或较小)的审计日志,您可以使用数据库作为数据存储。审计包附带了一个AbstractDoctrineLogger。您需要做的只是创建一个实现convertToEntity方法的服务,并将其标记为kernel.event_subscriber

配置

您可以在app/config.yml文件中可选地配置审计包

pbweb_audit:
    load_default_event_loggers: true    # loads the loggers defined in Pbweb/AuditBundle/Resources/config/default/loggers.yml
    load_default_event_appenders: true  # loads the event appenders in Pbweb/AuditBundle/Resources/config/default/appenders.yml

版权

© PB Web Media