umanit/trace-user-actions

一个用于追踪用户行为的包。

1.0.1 2022-07-13 09:36 UTC

This package is auto-updated.

Last update: 2024-09-13 14:16:46 UTC


README

此包允许您将用户行为记录到日志文件中。默认情况下,登录和注销将被追踪,但您可以通过派发事件轻松添加自己的操作。

例如,登录和注销将被记录如下

[2022-07-13T09:19:23.886319+02:00] umanit_trace_user_actions.INFO: User login {"user":"vdebona@umanit.fr"} []
[2022-07-13T09:19:41.715806+02:00] umanit_trace_user_actions.INFO: User logout {"user":"vdebona@umanit.fr"} []

默认情况下,日志存储在轮换文件中,保留180个文件,大约6个月。

安装

使用包管理器 composer 安装扩展。

composer require umanit/trace-user-actions

将包加载到您的Symfony项目中。

<?php

# config/bundles.php
return [
    // ...
    Umanit\TraceUserActions\UmanitTraceUserActionsBundle::class => ['all' => true],
];

配置

无需配置包,它就可以直接使用。但是,如果您想的话,可以通过覆盖 umanit_trace_user_actions 处理器来修改Monolog的配置。

例如,如果您想减少最大文件数

monolog:
    handlers:
        umanit_trace_user_actions:
            max_files: 10

使用

所有操作都将记录到轮换文件中(每天一个文件)。文件名掩码为 umanit-trace-user-actions-%kernel.environment%-YYYY-MM-DD.log

如果您想记录自己的操作,您必须派发一个新的 UserActionEvent,例如

function deleteProductAction(Product $product, EventDispatcherInterface $eventDispatcher): Response
{
    // [...]
    $eventDispatcher->dispatch(new UserActionEvent(sprintf('Delete product "%s"', $product->getName()), $this->getUser()));
    // [...]
}

此操作将被记录如下

[2022-07-13T10:15:27.962118+02:00] umanit_trace_user_actions.INFO: Delete product "Example product" {"user":"vdebona@umanit.fr"} []

贡献

欢迎提交拉取请求。对于重大更改,请先创建一个问题来讨论您想进行哪些更改。

许可

MIT