aginev / activity-log

追踪Laravel 5应用程序中的用户活动

v1.0.0 2016-02-05 10:09 UTC

This package is auto-updated.

Last update: 2024-09-27 11:12:53 UTC


README

此包将追踪订阅模型上的创建、更新或删除事件,并存储有关它的有用信息。

功能

  • Composer可安装
  • PSR4自动加载
  • 追踪订阅模型上的创建、更新或删除事件
  • 在数据库或日志文件中写入日志
  • 清理日志的命令

要求

仅构建Laravel框架5版本!

安装

在终端中

composer require aginev/activity-log:1.0.*

将服务提供者添加到config/app.php配置文件中,如下所示

// config/app.php

'providers' => [
    '...',
    Aginev\ActivityLog\ActivityLogServiceProvider::class,
];

发布迁移

php artisan vendor:publish --provider="Aginev\ActivityLog\ActivityLogServiceProvider" --tag="migrations"
php artisan migrate

发布配置

php artisan vendor:publish --provider="Aginev\ActivityLog\ActivityLogServiceProvider" --tag="config"

可选地,您可以添加活动日志命令,您将能够清理日志。

// app/Console/Kernel.php

protected $commands = [
    '...',
    \Aginev\ActivityLog\Commands\ActivityLogClean::class,
];

使用方法

要订阅活动日志模型,只需使用\Aginev\ActivityLog\Traits\ObservableModel

use \Aginev\ActivityLog\Traits\ObservableModel;

要添加自定义活动描述,请覆盖模型中的activityDescription方法

/**
 * Implement this method to set custom activity description message
 * @param $event Event name
 * @param User $user Current logged in user
 * @return string
 */
public function activityDescription($event, User $user = null) {
    return 'User ' . $this->full_name . ' has been ' . $event . ' from ' . $user->full_name;
}

获取活动

$logs = \ActivityLog::getActivities()->get(); // Get all activities
$logs = \ActivityLog::getLatestActivities(2); // Get latest 2 activities

清理日志

$logs = \ActivityLog::cleanLog(30); // Offset in days

在终端中清理日志

php artisan activity-log:clean

自定义处理程序实现

  1. 在您的自定义处理程序中实现\Aginev\ActivityLog\HandlersLogActivityInterface\ActivityLogInterface
  2. 将自定义处理程序作为值放置在activity-log.log配置中

致谢

https://github.com/spatie/activitylog - 类似包但实现不同。代码块从此处使用。谢谢!

许可

MIT - https://open-source.org.cn/licenses/MIT