Laravel Tips #2 : Logging dengan Database dan Event Listener Laravel

Putri Alvina Lutfiani
2 min readAug 21, 2019

Pada tulisan saya sebelumnya sudah dijabarkan untuk membuat logging yang ditanamkan pada setiap fungsi controller untuk mencatat setiap aktivitas user melalui controller yang dibuat, baca disini Laravel Tips #1 : Membuat Logging dengan Database.

Photo by Gustas Brazaitis on Unsplash

Pada tulisan sebelumnya, dijelaskan pembuatan model yang akan digunakan pada tips log event ini.

Model untuk logging

Event listener bawaan Laravel meliputi aktivitas yang menyangkut tentang autentikasi. Dari aktivitas tersebut, kita dapat mengambil data seperti data user. Aktivitas autentikasi tersebut meliputi Login, Logout, Failed Login, Register, Reset Password, Email Verification dan lainnya.

Event listener ini mengacu pada file utama Laravel yang dapat dilihat pada file builder

<project_name>\vendor\laravel\framework\src\Illuminate\Auth\Events

Pertama, buat database dan model yang sudah dijelaskan pada tulisan sebelumnya Laravel Tips #1 : Membuat Logging dengan Database.

Kedua, generate event dari builder agar dapat digunakan dengan command seperti berikut :

php artisan make:listener LoginFailed --event=Illuminate\Auth\Events\Failed

File yang di-generate ada di path

<project_name>\app\Listeners\LoginFailed.php

Pada file LoginFailed.php tersebut, kita masukkan model untuk mencatat logging. Jika terdapat user yang gagal melakukan login, maka data user tersebut otomatis dapat di ambil dan dimasukkan ke dalam log. Edit file tersebut menjadi seperti berikut :

<project_name>\app\Listeners\LoginFailed.php

Pada variabel $event, terdapat data tiap user gagal login. Ini dapat mencatat tiap login gagal jika itu adalah login yang bertujuan untuk memasuki sistem secara ilegal atau upaya sql injection melalui login form.

Ketiga, daftarkan listener yang sudah dibuat ke event provider. File event provider yaitu

<project_name>\app\Providers\EventServiceProvider.php

Buka file tersebut dan tambahkan kode hingga menjadi seperti berikut :

<project_name>\app\Providers\EventServiceProvider.php

Perhatikan line 21 dan 22, line tersebut mendefinisikan dari mana acuan event listener dan file listener yang sudah kita modifikasi. Jika telah didaftarkan pada provider, file listener dapat otomatis dijalankan oleh sistem dan akan di eksekusi sesuai kondisi listener (dalam hal ini jika login gagal).

Dalam tulisan ini hanya menjelaskan salah satu dari banyak event yang dapat dibuat. Selanjutnya, event lain dapat diikuti kurang lebih seperti pembuatan event failed login ini.

--

--