aginev/activity-log

Track user activities in Laravel 5 applications

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

This package is auto-updated.

Last update: 2024-04-27 10:17:33 UTC


README

This package will track created, updated or deleted event on subscribed models and will store useful info about it.

Features

  • Composer installable
  • PSR4 auto loading
  • Track created, updated or deleted event on subscribed models
  • Write logs in database or log files
  • Command for cleaning logs

Requires

Build only for Laravel Framework 5 only!

Installation

In terminal

composer require aginev/activity-log:1.0.*

Add Service Provider to your config/app.php like so

// config/app.php

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

Publish migrations

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

Publish config

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

Optionally you can add activity log command and you will be able to clean your logs.

// app/Console/Kernel.php

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

Usage

To subscribe model for activity log just use \Aginev\ActivityLog\Traits\ObservableModel

use \Aginev\ActivityLog\Traits\ObservableModel;

To add custom activity description overwrite activityDescription method in your model

/**
 * 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;
}

Get activities

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

Clean log

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

Clean the log from terminal

php artisan activity-log:clean

Custom handler implmentations

  1. Implement \Aginev\ActivityLog\HandlersLogActivityInterface\ActivityLogInterface in your custom handler.
  2. Place custom handler as value in activity-log.log config

Credits

https://github.com/spatie/activitylog - Similar package but with different implementation. Code blocks used from there. Thanks!

License

MIT - http://opensource.org/licenses/MIT