umanit / trace-user-actions
一个用于追踪用户行为的包。
1.0.1
2022-07-13 09:36 UTC
Requires
- php: >=7.1.3
- symfony/framework-bundle: ^4.4|^5.0|^6.0
- symfony/security-bundle: ^4.4|^5.0|^6.0
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"} []
贡献
欢迎提交拉取请求。对于重大更改,请先创建一个问题来讨论您想进行哪些更改。