mymuns / activity-log
A comprehensive Laravel 12+ package that provides request-response logging and model change tracking (versioning) with the ability to revert model states via command or API. Logs can be stored in the database or sent to external services like Logstash, Elasticsearch, Loki, or Sentry.
Requires
- php: ^8.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0
- spatie/laravel-http-logger: ^1.0 || ^2.0 || ^3.0
README
ActivityLog
paketi, Laravel 12 API projeleri için geliştirilmiş hibrit bir loglama sistemidir. Hem Request/Response
loglarını hem de model değişikliklerini kaydeder. Loglar veritabanında veya Elasticsearch, Loki, Sentry, Logstash gibi servislerde tutulabilir.
🚀 Özellikler
- API
Request
veResponse
loglama - Eloquent model değişikliklerinin versiyonlanması
- Önceki versiyonlara geri dönebilme (
revert
) - Logları veri tabanı veya dış servislerde saklama desteği
- Yetkilendirme kontrolü ile log geri alma
- Config dosyası üzerinden özelleştirilebilir
🛠 Kurulum
1. Paketi ekleyin
composer require vendor/activity-log
2. Yayınlama
php artisan vendor:publish --provider="ActivityLog\ActivityLogServiceProvider"
php artisan vendor:publish --tag=activitylog-migrations
3. Yapılandırma
config/activitylog.php dosyasını açarak aşağıdaki değerleri düzenleyin:
'storage' => env('ACTIVITY_LOG_STORAGE', 'database'), // database, file, logstash, elasticsearch, sentry 'channels' => [ 'database', 'daily', 'logstash', 'loki', 'sentry', 'elasticsearch', ],
4. Middleware
LogRequestResponseMiddleware sadece API için otomatik olarak tanımlanır. Gerekirse App\Http\Kernel.php içinde elle tanımlanabilir:
'api' => [ \ActivityLog\Middleware\LogRequestResponseMiddleware::class, 'throttle:api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ],
5. Kullanım
1. Model Aktivite Loglama
Modelinize trait ekleyin:
use ActivityLog\Traits\LogsModelActivity; class Post extends Model { use LogsModelActivity; protected $logAttributes = ['title', 'content']; }
2. Revert Özelliği
Artisan Komutu:
php artisan activitylog:revert {id}
API Endpoint:
POST /api/activity-log/{id}/revert Authorization: Bearer {token}
6. Veritabanı Yapısı
Paket kurulduğunda aşağıdaki tablo otomatik oluşur:
- activity_logs: Request, response ve model değişikliklerini içerir
7. Yetkilendirme
revert işlemleri için aşağıdaki izin zorunludur:
- activity-log.revert