PHPackages                             novay/logify - 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. [Logging &amp; Monitoring](/categories/logging)
4. /
5. novay/logify

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

novay/logify
============

Logify is a Laravel package for logging activities with enhanced features.

0.0.3(9mo ago)023MITPHPPHP ^8.2

Since Aug 10Pushed 9mo agoCompare

[ Source](https://github.com/novay/logify)[ Packagist](https://packagist.org/packages/novay/logify)[ Docs](https://github.com/novay/logify)[ RSS](/packages/novay-logify/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (2)Versions (4)Used By (0)

\[Personal Use\] Logify
=======================

[](#personal-use-logify)

Logify adalah paket Laravel yang dirancang untuk mempermudah pencatatan aktivitas dalam aplikasi Anda. Paket ini menyediakan cara mudah untuk mencatat aktivitas pengguna, sehingga lebih mudah untuk melacak perubahan dan tindakan yang dilakukan oleh pengguna.

---

Fitur Utama
-----------

[](#fitur-utama)

- **Pencatatan Aktivitas**: Logify secara otomatis mencatat aktivitas pengguna.
- **Dapat Disesuaikan**: Mudah diperluas agar sesuai dengan kebutuhan aplikasi Anda.
- **Integrasi**: Bekerja dengan mulus dengan sistem *logging* Laravel.
- **Log Viewer**: Menyediakan komponen Livewire siap pakai untuk menampilkan dan memfilter log.

---

Instalasi
---------

[](#instalasi)

Anda dapat menginstal paket ini melalui Composer:

```
composer require novay/logify
```

---

Penggunaan
----------

[](#penggunaan)

Untuk menggunakan Logify, tambahkan *trait* `LogActivity` ke komponen atau *controller* Anda. *Trait* ini menyediakan serangkaian fungsi *helper* untuk mencatat aktivitas, termasuk:

- **`logCreated(string $moduleName, array $createdData)`**: Mencatat peristiwa pembuatan data baru.
- **`logUpdated(string $moduleName, array $oldData, array $newData)`**: Mencatat peristiwa pembaruan data, hanya menampilkan *field* yang berubah.
- **`logDeleted(string $moduleName, array $deletedData)`**: Mencatat peristiwa penghapusan data.
- **`log(string $moduleName, string $message, string $level, array $context)`**: Fungsi serbaguna untuk mencatat pesan log kustom dengan *level* tertentu.
- **`getCauserContext()`**: Mengambil detail pengguna yang saat ini melakukan aksi (nama, ID, IP).

Berikut adalah contoh penggunaan di dalam komponen Livewire:

```
namespace App\Http\Livewire;

use Livewire\Component;
use Novay\Logify\Traits\LogActivity;
use Illuminate\Support\Facades\Log;

class PostForm extends Component
{
    use LogActivity;

    public function createPost()
    {
        // ... logika validasi & penyimpanan data ...

        $this->logCreated('Post', $newPost->toArray());
    }

    public function updatePost()
    {
        // ... logika validasi & pembaruan data ...

        $this->logUpdated('Post', $oldPost->toArray(), $updatedPost->toArray());
    }

    public function deletePost()
    {
        // ... logika penghapusan data ...

        $this->logDeleted('Post', $deletedPost->toArray());
    }

    public function handleCustomError(\Exception $e)
    {
        // Contoh penggunaan fungsi log()
        $this->log('Post', 'Gagal memproses post', 'error', [
            'exception' => $e->getMessage(),
            'user_input' => $this->all(),
        ]);

        // Contoh langsung menggunakan Log facade dengan channel 'logify'
        Log::channel(config('logify.channel.name'))->error('Galat!: ' . $e->getMessage(), array_merge($this->getCauserContext(), [
            'exception'  => $e->getMessage(),
            'input_data' => $this->all(),
        ]));
    }
}
```

---

Konfigurasi
-----------

[](#konfigurasi)

Anda dapat mempublikasikan file konfigurasi menggunakan perintah berikut:

```
php artisan vendor:publish --provider="Novay\Logify\LogifyServiceProvider"
```

File konfigurasi ini (`config/logify.php`) memungkinkan Anda menyesuaikan *channel logging* yang digunakan oleh paket. Secara bawaan, konfigurasi akan menggunakan `Monolog\Formatter\JsonFormatter` untuk memastikan *output* log terstruktur dengan baik dan mudah dibaca oleh *log viewer*.

Contoh `config/logify.php`:

```
