This package will track created, updated or deleted event on subscribed models and will store useful info about it.
- 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
Build only for Laravel Framework 5 only!
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,
];
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
- Implement \Aginev\ActivityLog\HandlersLogActivityInterface\ActivityLogInterface in your custom handler.
- Place custom handler as value in activity-log.log config
https://github.com/spatie/activitylog - Similar package but with different implementation. Code blocks used from there. Thanks!