garcia1901l / laravel-activity-lite
Lightweight activity logger for Laravel
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:laravel-package
Requires
- php: ^8.1
- illuminate/database: ^10.0|^11.0|^12.0
- illuminate/events: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Suggests
- ext-mongodb: PHP extension required for MongoDB
- mongodb/laravel-mongodb: Required for MongoDB support (v3.8 or higher)
README
Lightweight activity logger for Laravel using MongoDB (Laravel 10–12 compatible).
✨ Features
- 🚀 Automatic model activity tracking (create/update/delete)
- 🔍 MongoDB database for lightweight operation
- 👤 Tracks causer (user, artisan, queue jobs)
- ⚡ Configurable event logging
- 📊 Powerful querying capabilities
- 📦 Easy installation and setup
Requisitos de MongoDB
El paquete es compatible con estas versiones del driver oficial:
mongodb/laravel-mongodb
: 3.8+ (incluye v4 y v5)- PHP extension
mongodb
: 1.10+
Si necesitas usar una versión diferente, instálala manualmente:
composer require mongodb/laravel-mongodb:"YOUR_VERSION" ## 📦 Installation ### 1. Install via Composer ```bash composer require garcia1901l/laravel-activity-lite
Optional: Publish the configuration file:
php artisan vendor:publish --provider="Garcia1901l\LaravelActivityLite\ActivityLiteServiceProvider"
2. Run the installation command
php artisan activity-lite:install
This will:
- Create the MongoDB database
- Run the required migrations
🧑💻 Basic Usage
Add the trait to your models:
use Garcia1901l\LaravelActivityLite\Traits\LogsActivity; use Illuminate\Database\Eloquent\Model; class User extends Model { use LogsActivity; }
🔧 Advanced Usage
Manual Logging
User::logManualAction('custom_action', [ 'message' => 'Special event occurred', 'data' => ['key' => 'value'] ]);
Query Logs
# View recent activity php artisan activity-lite:query --days=7 # Filter by model php artisan activity-lite:query --model=User # Filter by action php artisan activity-lite:query --action=updated # Export results php artisan activity-lite:query --days=30 --json php artisan activity-lite:query --days=30 --csv
⚙️ Configuration
Publish the config file:
php artisan vendor:publish --tag=activity-lite-config
Example of config/activity-lite.php
:
return [ 'enabled' => true, 'database_name' => 'activity_lite', 'events' => ['created', 'updated', 'deleted', 'soft_deleted', 'force_deleted', 'restored'], 'except' => [], // Models to exclude ];
🗃️ Database Structure
The activity_logs
table includes:
Column | Type | Description |
---|---|---|
id | bigint | Primary key |
action | string | Performed action |
log_type | string | 'model' or 'manual' |
model_type | string | Model class |
model_id | bigint | Model ID |
causer_type | string | Who performed the action |
causer_id | bigint | Causer ID |
data | json | Change data |
created_at | timestamp | Creation time |
updated_at | timestamp | Last update time |
🛠️ Customization
Temporarily disable logging
config(['activity-lite.enabled' => false]);
Exclude specific models
'except' => [ App\Models\SensitiveModel::class, ],
Log only specific attributes and ignore others
public function getActivityLogOptions(): array { return [ 'log_attributes' => ['name', 'email'], 'ignore_attributes' => ['password', 'remember_token'] ]; }
✅ Requirements
- PHP 8.1+
- Laravel 10.x to 12.x
- MongoDB extension for PHP
📄 License
MIT License. See LICENSE for details.
👤 Author
Frank Garcia