peters-development / laravel-model-logger
Lightweight polymorphic model activity logging for Laravel.
Package info
github.com/Peters-Development/laravel-model-logger
pkg:composer/peters-development/laravel-model-logger
Requires
- php: ^8.2
- illuminate/auth: ^10.0|^11.0|^12.0
- illuminate/database: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
This package is auto-updated.
Last update: 2026-03-14 03:08:59 UTC
README
Lightweight polymorphic model activity logging for Laravel.
Installation
composer require peters-development/laravel-model-logger
The service provider is auto-discovered. Migrations run automatically.
Usage
Add the HasModelLogs trait to any Eloquent model:
use PetersDevelopment\ModelLogger\HasModelLogs; class Order extends Model { use HasModelLogs; }
Then log activity:
$order->log('Order was shipped'); $order->log('Payment received', ['amount' => 99.99, 'method' => 'ideal']); // Retrieve logs $order->logs; // Collection of ModelLog
The authenticated user is automatically recorded. Meta data is stored as JSON.
The log() method returns the created ModelLog instance:
$log = $order->log('Status changed', ['from' => 'pending', 'to' => 'shipped']);
Querying Logs
Access the user that performed the action:
$log->user; // Returns the User model
Filter logs by user:
use PetersDevelopment\ModelLogger\ModelLog; $logs = ModelLog::forUser($userId)->get();
Configuration
Publish the config to customize the table name:
php artisan vendor:publish --tag=model-logger-config
// config/model-logger.php return [ 'table_name' => 'model_logs', ];
License
MIT