Skip to content
Track user activities in Laravel 5 applications
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
migrations
src
LICENSE
README.md
composer.json

README.md

Track user activities in Laravel 5 applications

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

You can’t perform that action at this time.