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.

v1.0.3 2025-07-24 09:22 UTC

This package is not auto-updated.

Last update: 2025-07-25 06:08:56 UTC


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 ve Response 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