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., (*1)
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!, (*2)
Installation
In terminal, (*3)
composer require aginev/activity-log:1.0.*
Add Service Provider to your config/app.php like so, (*4)
// config/app.php
'providers' => [
'...',
Aginev\ActivityLog\ActivityLogServiceProvider::class,
];
Publish migrations, (*5)
php artisan vendor:publish --provider="Aginev\ActivityLog\ActivityLogServiceProvider" --tag="migrations"
php artisan migrate
Publish config, (*6)
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., (*7)
// app/Console/Kernel.php
protected $commands = [
'...',
\Aginev\ActivityLog\Commands\ActivityLogClean::class,
];
Usage
To subscribe model for activity log just use \Aginev\ActivityLog\Traits\ObservableModel, (*8)
use \Aginev\ActivityLog\Traits\ObservableModel;
To add custom activity description overwrite activityDescription method in your model, (*9)
/**
* 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, (*10)
$logs = \ActivityLog::getActivities()->get(); // Get all activities
$logs = \ActivityLog::getLatestActivities(2); // Get latest 2 activities
Clean log, (*11)
$logs = \ActivityLog::cleanLog(30); // Offset in days
Clean the log from terminal, (*12)
php artisan activity-log:clean
Custom handler implmentations
- Implement \Aginev\ActivityLog\HandlersLogActivityInterface\ActivityLogInterface in your custom handler.
- 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!, (*13)
License
MIT - http://opensource.org/licenses/MIT, (*14)