rast/activity-log

A simple activity log package that logs to file with model trait and log viewer UI

Installs: 12

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/rast/activity-log

v1.3 2025-12-12 16:57 UTC

This package is auto-updated.

Last update: 2025-12-12 17:07:28 UTC


README

A lightweight Laravel package for logging model activities (create, update, delete) into log files with a built-in viewer UI.

Issues Forks Stars Total Downloads
Latest Version Laravel PHP License

๐Ÿ“ฆ Features

  • Logs created, updated, and deleted events.
  • Detects changed attributes only (for update).
  • Logs to dedicated storage/logs/activity-YYYY-MM-DD.log.
  • Includes Laravel Blade log viewer page.
  • Supports filters (date, action, search).
  • Plug-and-play trait HasRastActivityLog.

๐Ÿš€ Installation

composer require rast/activity-log

Laravel will automatically discover the service provider.

โš™๏ธ Configuration (Optional)

Publish config:

php artisan vendor:publish --tag=activitylog-config

This publishes:

config/activitylog.php

Inside the file:

return [
    'enabled' => true,
    'channel' => 'activity',
    'days' => 30,
];

๐Ÿงฉ Usage

1. Add the Trait to Any Model

use RAST\ActivityLog\Traits\HasRastActivityLog;

class Post extends Model
{
    use HasRastActivityLog;

    protected $fillable = ['title', 'content'];

    protected $logAttributes = ['title', 'content'];
}

For users:

class User extends Authenticatable
{
    use HasRastActivityLog;

    protected $logAttributes = ['name', 'email'];
}

๐Ÿงช What Gets Logged?

1. Created Event

Writes full data.

2. Updated Event

Writes only changed fields.

3. Deleted Event

Writes full data.

Example log file:

storage/logs/activity-2025-11-21.log

๐Ÿ” View Logs in Browser

Visit:

/activity-log

Includes filters:

  • Date
  • Action (create/update/delete)
  • Search (model name, user ID, record ID)

๐Ÿ“ Log Structure

Each log entry example:

{
  "action": "updated",
  "model": "User",
  "id": 3,
  "changes": {
    "email": {
      "old": "old@mail.com",
      "new": "new@mail.com"
    }
  },
  "user_id": 1
}

๐Ÿ“‚ File Logging Channel

The package auto-registers a custom channel:

'activity' => [
    'driver' => 'single',
    'path' => storage_path('logs/activity-' . date('Y-m-d') . '.log'),
    'level' => 'info',
],

๐Ÿ“œ License

This package is open-sourced under the MIT License.