sdkwala/laravel-activity-logger
最新稳定版本:v1.0.0
Composer 安装命令:
composer require sdkwala/laravel-activity-logger
包简介
A Laravel package to log model events (created, updated, deleted) to a database table with hybrid model registration.
README 文档
README
A Laravel package to log model events (created, updated, deleted) to a database table, with hybrid model registration.
Features
- ✅ Hybrid Model Registration: Use trait or config file to register models
- ✅ Event Logging: Log created, updated, and deleted events
- ✅ Flexible Configuration: Customize events and retention periods
- ✅ Cleanup Command: Remove old logs automatically
- ✅ Laravel 9, 10, 11, 12 Support: Compatible with multiple Laravel versions
- ✅ PHP 8.1+ Support: Modern PHP features
Installation
composer require sdkwala/laravel-activity-logger
Publish Config & Migration
php artisan vendor:publish --provider="Sdkwala\ActivityLogger\ActivityLoggerServiceProvider"
php artisan migrate
Usage
1. Using the Trait
Add the trait to any Eloquent model:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Sdkwala\ActivityLogger\Traits\LogsActivity; class Post extends Model { use LogsActivity; protected $fillable = ['title', 'content']; }
2. Using the Config File
List model class names in config/activity-logger.php:
<?php return [ 'models' => [ App\Models\Post::class, App\Models\User::class, App\Models\Comment::class, ], // ... other config ];
3. Viewing Activity Logs
use Sdkwala\ActivityLogger\Models\ActivityLog; // Get all activity logs $logs = ActivityLog::all(); // Get logs for a specific model $postLogs = ActivityLog::where('model_type', Post::class) ->where('model_id', $post->id) ->get(); // Get logs by event type $createdLogs = ActivityLog::where('event', 'created')->get();
Cleanup Old Logs
Delete logs older than 30 days (default):
php artisan sdkwala:activity-logger:cleanup
Or specify days:
php artisan sdkwala:activity-logger:cleanup --days=60
Configuration
The configuration file config/activity-logger.php contains:
<?php return [ // List of model class names to observe for activity logging 'models' => [ // App\Models\Post::class, ], // Events to log 'events' => [ 'created', 'updated', 'deleted', ], // Default retention for cleanup command (in days) 'cleanup_retention_days' => 30, ];
Database Schema
The activity_logs table contains:
id- Primary keymodel_type- Full class name of the modelmodel_id- ID of the model instanceevent- Event type (created, updated, deleted)old_values- JSON of previous values (for updates)new_values- JSON of new valuesuser_id- ID of the authenticated user (if any)created_at- Timestamp of the activity
Testing
composer test
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-08-08