PHPackages                             behzad/file-logger - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. behzad/file-logger

ActiveLibrary[Database &amp; ORM](/categories/database)

behzad/file-logger
==================

A lightweight Laravel package for logging model changes in files with restore capabilities.

v1.0.8(7mo ago)09MITPHPPHP ^8.2|^8.3|^8.4

Since Oct 18Pushed 7mo agoCompare

[ Source](https://github.com/Amirbehzad11/behzad-file-logge)[ Packagist](https://packagist.org/packages/behzad/file-logger)[ Docs](https://github.com/Amirbehzad11/behzad-file-logger)[ RSS](/packages/behzad-file-logger/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (4)Versions (10)Used By (0)

Laravel File Logger
===================

[](#laravel-file-logger)

یک پکیج سبک و کاربردی برای لاگ کردن تغییرات مدل‌ها در فایل‌های JSON

نصب
---

[](#نصب)

✨ ویژگی‌ها
----------

[](#-ویژگی‌ها)

- 🔍 **لاگ خودکار تغییرات** - تمام عملیات Create, Update, Delete
- 💾 **ذخیره در فایل JSON** - بدون نیاز به دیتابیس اضافی
- 🔄 **بازیابی رکوردهای حذف شده** - Restore از روی لاگ‌ها
- 👤 **ثبت اطلاعات کاربر** - User ID, IP, User Agent
- ⚙️ **کانفیگ انعطاف‌پذیر** - تنظیمات کامل و قابل شخصی‌سازی
- 🎯 **Exclude فیلدها** - عدم لاگ فیلدهای حساس مثل password
- 📊 **File Rotation** - مدیریت خودکار سایز فایل‌ها
- 🚀 **Performance بالا** - بدون تاثیر منفی روی عملکرد
- 🛠️ **Artisan Commands** - دستورات مفید برای مدیریت لاگ‌ها
- 🎨 **Facade Support** - استفاده آسان با Facade

---

📦 نصب
-----

[](#-نصب)

### نصب از طریق Composer

[](#نصب-از-طریق-composer)

```
composer require behzad/file-logger
```

انتشار فایل کانفیگ
------------------

[](#انتشار-فایل-کانفیگ)

```
php artisan vendor:publish --tag=file-logger-config
```

🚀 راه‌اندازی سریع
-----------------

[](#-راه‌اندازی-سریع)

### گام 1: اضافه کردن Trait به مدل

[](#گام-1-اضافه-کردن-trait-به-مدل)

```
 'محتوای پست',
    'status' => 'published'
]);

// Update - لاگ می‌شود
$post->update(['title' => 'عنوان جدید']);

// Delete - لاگ می‌شود
$post->delete();
```

📖 مستندات کامل
--------------

[](#-مستندات-کامل)

### 🔧 تنظیمات (Configuration)

[](#-تنظیمات-configuration)

### فایل config/file-logger.php:

[](#فایل-configfile-loggerphp)

```
 storage_path('logs/file_logger'),

    // فرمت ذخیره (json یا line)
    'format' => 'json',

    // لاگ کردن IP کاربر
    'log_ip' => true,

    // لاگ کردن User Agent
    'log_user_agent' => true,

    // فیلدهایی که نباید لاگ شوند
    'excluded_fields' => [
        'password',
        'remember_token',
        'api_token',
    ],

    // حداکثر سایز فایل لاگ (MB)
    'max_file_size' => 10,

    // فرمت تاریخ
    'date_format' => 'Y-m-d H:i:s',
];
```

📝 ساختار لاگ
------------

[](#-ساختار-لاگ)

```
{
    "event_type": "updated",
    "model": "App\\Models\\Post",
    "model_id": 123,
    "old_values": {
        "title": "عنوان قدیمی",
        "status": "draft"
    },
    "new_values": {
        "title": "عنوان جدید",
        "status": "published"
    },
    "user_id": 1,
    "ip": "192.168.1.1",
    "user_agent": "Mozilla/5.0...",
    "timestamp": "2025-10-18 14:30:45"
}
```

🎯 استفاده پیشرفته
-----------------

[](#-استفاده-پیشرفته)

### 1️⃣ بازیابی رکوردهای حذف شده

[](#1️⃣-بازیابی-رکوردهای-حذف-شده)

### روش اول: استفاده از مدل

[](#روش-اول-استفاده-از-مدل)

```
// بازیابی تمام رکوردهای حذف شده
$result = Post::restoreFromFile();

// نتیجه:
// [
//     'success' => true,
//     'restored_count' => 5,
//     'records' => [...]
// ]
```

### روش دوم: استفاده از Facade

[](#روش-دوم-استفاده-از-facade)

```
use Behzad\FileLogger\Facades\FileLogger;

$result = FileLogger::restoreFromFile(Post::class);
```

### روش سوم: دستور Artisan

[](#روش-سوم-دستور-artisan)

```
php artisan file-logger:restore "App\Models\Post"
```

2️⃣ مشاهده لاگ‌ها
-----------------

[](#2️⃣-مشاهده-لاگ‌ها)

```
$logs = Post::getLogs();
```

3️⃣ پاک کردن لاگ‌ها
-------------------

[](#3️⃣-پاک-کردن-لاگ‌ها)

```
Post::clearLogs();
```

🛠️ دستورات Artisan
------------------

[](#️-دستورات-artisan)

```
# پاک کردن تمام لاگ‌ها (با تایید)
php artisan file-logger:clear

# پاک کردن لاگ یک مدل خاص
php artisan file-logger:clear Post

# پاک کردن لاگ با نام کامل کلاس
php artisan file-logger:clear "App\Models\User"
```

### بازیابی از لاگ

[](#بازیابی-از-لاگ)

```
# بازیابی رکوردهای حذف شده
php artisan file-logger:restore "App\Models\Post"
```

🤝 مشارکت
--------

[](#-مشارکت)

مشارکت‌ها همیشه خوش‌آمد هستند! لطفاً: Repository را Fork کنید یک Branch جدید بسازید (git checkout -b feature/amazing-feature) تغییرات را Commit کنید (git commit -m 'Add amazing feature') به Branch خود Push کنید (git push origin feature/amazing-feature) یک Pull Request باز کنید

📄 لایسنس
--------

[](#-لایسنس)

این پکیج تحت لایسنس MIT منتشر شده است.

👨‍💻 توسعه‌دهنده
---------------

[](#‍-توسعه‌دهنده)

📧 Email: 🐙 GitHub: @Amirbehzad11

=======

2.بازیابی رکورد های حذف شده

> > > > > > > Stashed changes

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance65

Regular maintenance activity

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

9

Last Release

212d ago

PHP version history (4 changes)v1.0.1PHP ^8.0

v1.0.2PHP ^8.0|^8.1|^8.2

v1.0.4PHP ^7.4|^8.0|^8.1|^8.2

v1.0.5PHP ^8.2|^8.3|^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/770b566fd059e4f94337dee2d2a98da7ce053e4f56076e355515a6e3dacadf02?d=identicon)[Amirbehzad11](/maintainers/Amirbehzad11)

---

Top Contributors

[![Amirbehzad11](https://avatars.githubusercontent.com/u/113092905?v=4)](https://github.com/Amirbehzad11 "Amirbehzad11 (21 commits)")

---

Tags

laravelloggingeloquentAuditmodel-changesfile-logger

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/behzad-file-logger/health.svg)

```
[![Health](https://phpackages.com/badges/behzad-file-logger/health.svg)](https://phpackages.com/packages/behzad-file-logger)
```

###  Alternatives

[owen-it/laravel-auditing

Audit changes of your Eloquent models in Laravel

3.4k33.0M95](/packages/owen-it-laravel-auditing)[watson/validating

Eloquent model validating trait.

9723.3M47](/packages/watson-validating)[cybercog/laravel-love

Make Laravel Eloquent models reactable with any type of emotions in a minutes!

1.2k302.7k1](/packages/cybercog-laravel-love)[cviebrock/eloquent-taggable

Easy ability to tag your Eloquent models in Laravel.

567694.8k3](/packages/cviebrock-eloquent-taggable)[altek/accountant

The auditing &amp; accountability package for Laravel's Eloquent ORM.

92954.3k4](/packages/altek-accountant)[reedware/laravel-relation-joins

Adds the ability to join on a relationship by name.

2121.2M13](/packages/reedware-laravel-relation-joins)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
