User activity monitoring is very important when your application uses multiple people and you need to know user login activity, lockout activity for too many login attempts and existing data editing and deleting logs. Developing such as user activity monitoring system is quite time consuming and not an easy task. If you are finding a flexible and easy way to monitor your application user activity then Laravel User Activity is the free package for that, which help you to monitor your application user activity very easily with a beautiful, responsive and easy user-interface. Let's take a look at what are the features of the Laravel user activity package.
Step 1 Run this command given below to install the laravel user activity package.
composer require haruncpi/laravel-user-activity
Step 2 Now run this artisan command.
php artisan user-activity:install
Installation finished!
By default, It will catch login activity and lockout (too many attempts) automatically. You can enable or disable it by config value. To keep track of your existing table record edit and delete, just use the Loggable
trait in your model. That's it, super simple! If any user edits or delete your existing table record, it will automatically be logged into the logs
table and you will get the details, what data deleted or edited by users.
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use Haruncpi\LaravelUserActivity\Traits\Loggable;
class Student extends Model
{
use Loggable;
}
To view user activity dashboard, browse the /admin/user-activity
. By default, only logged in user can view the user activity dashboard. You can add any middleware restriction by user-activity.php
config file.
http://example.com/admin/user-activity
Dashboard Preview
To delete activity log data older than defined days value into the user-activity.php
config file (default value: 7 days).
php artisan user-activity:delete
To delete activity log data older than n days.
php artisan user-activity:delete 30
To delete all activity log data
php artisan user-activity:delete all
N.B With the help of these console commands, you can make a laravel schedule for deleting user activity log data automatically. If you are a shared hosting (cPanel) user then you can read the laravel schedule in the shared hosting tutorial post.
Change the config value according to your need into the user-activity.php
config file to customize activity log dashboard URL, custom middleware and activity log enable or disable. Default config values are given below.
<?php
return [
'activated' => true,
'middleware' => ['web', 'auth'],
'route_path' => 'admin/user-activity',
'admin_panel_path' => 'admin/dashboard',
'delete_limit' => 7,
'model' => [
'user' => "App\User"
],
'log_events' => [
'on_edit' => true,
'on_delete' => true,
'on_login' => true,
'on_lockout' => true
]
];
Note: You can configure your user instance. For Laravel 8, use it App\Models\User
Hope this package will help you to monitor your application user activity with a beautiful and easy UI. The laravel user activity package is an open-source laravel package with CC 4.0 licence. Support the Laravel User Activity package GitHub repository to make it better.
Suppose, you have a parent model class extends by the laravel eloquent model class and it has a lot of sub-class. In this situation, you can easily configure the Larave User Activity package with your base model class implementation.
Use Loggable trait In your base model class
class BaseModel extends Model
{
use Loggable;
...
...
}
Now all the sub-class of the base model will be automatically logged! In case, If you don't want to log for any subclass of the base model just add a property to exclude logging.
class B extends BaseModel
{
public $excludeLogging = true;
...
...
}