Laravel Activity Log: Mencatat Aktivitas di Aplikasi Laravel

Log activity inside your Laravel app

Laravel Activity Log: Mencatat Aktivitas di Aplikasi Laravel

Deskripsi

Laravel Activity Log adalah package yang dikembangkan oleh Spatie untuk memudahkan pencatatan aktivitas dalam aplikasi Laravel. Package ini memungkinkan developer untuk melacak berbagai aktivitas yang terjadi di dalam aplikasi, seperti perubahan model, login pengguna, atau aktivitas kustom lainnya.

Fitur Utama

1. Pencatatan Model Activity

  • Melacak perubahan pada model secara otomatis
  • Menyimpan data sebelum dan sesudah perubahan
  • Mendukung soft deletes
  • Kemampuan untuk mencatat multiple changes dalam satu aktivitas
  • Fleksibilitas dalam menentukan atribut yang dilacak

2. Pencatatan Custom Activity

  • Mencatat aktivitas kustom dengan mudah
  • Mendukung penambahan properti tambahan
  • Kemampuan untuk mengelompokkan aktivitas terkait
  • Dukungan untuk logging dengan berbagai log levels

3. Penyimpanan dan Pengambilan Data

  • Model Activity yang dapat dikustomisasi
  • Kemampuan untuk menggunakan multiple log names
  • Clean API untuk mengambil aktivitas
  • Dukungan untuk berbagai connection database

Instalasi dan Konfigurasi

Instalasi via Composer

composer require spatie/laravel-activitylog

Publishing Configuration

php artisan vendor:publish --provider="Spatie\Activitylog\ActivitylogServiceProvider" --tag="activitylog-config"

Migrasi Database

php artisan migrate

Penggunaan Dasar

1. Mencatat Perubahan Model

use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;

class Article extends Model
{
    use LogsActivity;

    public function getActivitylogOptions(): LogOptions
    {
        return LogOptions::defaults()
            ->logOnly(['title', 'content'])
            ->logOnlyDirty()
            ->dontSubmitEmptyLogs();
    }
}

2. Mencatat Aktivitas Kustom

activity()
    ->performedOn($article)
    ->causedBy($user)
    ->withProperties(['custom_prop' => 'value'])
    ->log('Article has been archived');

3. Mengambil Log Aktivitas

// Mengambil semua aktivitas
Activity::all();

// Mengambil aktivitas untuk model tertentu
$article->activities;

// Mengambil aktivitas dengan kondisi tertentu
Activity::where('log_name', 'default')
    ->where('subject_type', Article::class)
    ->get();

Kesimpulan

Laravel Activity Log adalah package yang sangat berguna untuk melacak dan mencatat aktivitas dalam aplikasi Laravel. Dengan fitur yang komprehensif dan API yang fleksibel, package ini menyediakan solusi yang elegant untuk kebutuhan audit logging. Penggunaan yang tepat dari package ini dapat membantu dalam debugging, audit keamanan, dan pemahaman perilaku pengguna dalam aplikasi.

Developer

Spatie

Developer

5,429 Stars
717 Forks