Cara Menampilkan Log Error di Laravel

Halo, Sobat Jagoan! Secara default, Laravel menyimpan semua log aktivitas aplikasi, seperti error, exception, dan informasi sistem di dalam file /storage/logs/laravel.log. Namun, ketika aplikasi sudah berjalan di server dan mulai digunakan banyak user, log akan terus bertambah setiap hari, termasuk catatan error, info, dan warning.

Akibatnya, kalau kamu hanya mengandalkan cara manual seperti membuka file laravel.log untuk melihat error maka cara itu tidak efisien karena file bisa sangat besar, tampilannya tidak terformat rapi sehingga sulit baca, dan tidak praktis jika ingin mencari error tertentu karena harus melakukan scroll manual.

Oleh karena itu, Laravel Log Viewer hadir sebagai solusi praktis yang menyediakan tampilan web interaktif untuk membaca log dengan fitur seperti filter level, cari pesan error, dan hapus log langsung dari browser. Selengkapnya mengenai Log Viewer kamu bisa mengunjungi Dokumentasi Resmi Log View.

Artikel kali ini menggunakan Laravel versi 10 dan Opcodesio (package log-error) versi 3.17, Sob!

Prasyarat

  1. Menggunakan Laravel versi 8, 9, 10, atau 11
  2. Sudah mengunggah proyek Laravel ke hosting dan dapat diakses melalui domain/subdomain. Kalau belum, berikut Tutorial Upload Aplikasi Laravel ke Hosting Melalui cPanel
  3. Terminal hosting memiliki akses composer. Jagoan Hosting telah menyediakan composer di terminal
  4. Folder storage/logs , setidaknya memiliki 1 file laravel.log, harus ada (akan dibuat otomatis jika ada error)
  5. Pastikan di dalam file .env bagian APP_URL mengarah ke domain kamu

Artikel ini akan menggunakan package opcodesio/log-viewer, yang memiliki antarmuka modern dan fitur yang lengkap.

Step 1: Instal Package

Pertama, login ke cPanel hosting kamu, caranya seperti pada Cara Login Ke cPanel di Member Area Jagoan Hosting Sob!. Kemudian buka menu Terminal dan masuk ke direktori Laravel kamu.

				
					ls
cd nama-proyek-laravel

				
			

Catatan: Pastikan folder nama-proyek-laravel berada satu direktori dengan file-file seperti artisan, composer.json, routes/, app/ sehingga nantinya bisa menginstal package log-view dengan lancar.

Setelah berada di direktori proyek Laravel kamu, lanjutkan dengan menjalankan:

				
					composer require opcodesio/log-viewer
				
			
1-install-opcodesio-cara-menampilkan-log-error-laravel-hosting

Perintah di atas akan mengunduh dan menambahkan package log-viewer ke dalam proyek Laravel kamu menggunakan composer.

Step 2: Publish Front-end Assets

Setelah berhasil menginstal package, kamu perlu menyalin file tampilan (UI/front-end assets) yang dibutuhkan oleh Log Viewer ke dalam folder Laravel, supaya kamu bisa mengakses tampilan antarmukanya di browser.

				
					php artisan log-viewer:publish
				
			
2-cara-menampilkan-log-error-laravel-hosting

Perintah ini menyalin asset Log Viewer ke public/vendor/log-viewer.

Step 3: Konfigurasi Publish File

Kalau ingin mengatur konfigurasi tambahan seperti route, log tambahan, dan izin akses, jalankan perintah berikut:

				
					php artisan vendor:publish --tag=log-viewer-config
				
			
3-cara-menampilkan-log-error-laravel-hosting

Perintah di atas akan menyalin file konfigurasi bawaan dari package ke folder config/ di proyek Laravel kamu. File konfigurasinya adalah config/log-viewer.php.

Kalau kamu sudah menjalankan semua perintah di atas, maka Log Viewer sudah siap dipakai, Sob! Tapi, untuk penggunaan di lingkungan hosting atau mode production, akses ini masih dibatasi.

opcodesio/log-viewer secara default tidak mengizinkan akses di environment production, untuk alasan keamanan. Tujuannya agar orang luar tidak bisa mengintip file log Laravel di server. Jadi, kamu perlu menambahkan pengaturan keamanan agar bisa mengakses dalam environment production, kamu perlu melakukan langkah tambahan berikut:

Step 4: Autorisasi Akses ke Log Viewer

Ada dua opsi untuk mengamankan supaya hanya orang tertentu yang dapat mengakses Log Viewer.

Opsi 1: Menggunakan Method LogViewer::auth($callback)

Buka file nama-proyek-laravel/app/Providers/AppServiceProvider.php. Di method boot() tulis seperti baris ini:

				
					use Opcodes\LogViewer\Facades\LogViewer;
use Illuminate\Support\Facades\Auth;
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    LogViewer::auth(function ($request) {
        // return true to allow viewing the Log Viewer.
    });
}

				
			

Misalnya, seperti ini:

				
					use Opcodes\LogViewer\Facades\LogViewer;
use Illuminate\Support\Facades\Auth;
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    LogViewer::auth(function ($request) {
        return $request->user()
            && in_array($request->user()->email, [
                'admin@example.com',
            ]);
    });
}

				
			

Kode tersebut akan mengembalikan nilai true (akses diizinkan) atau false (akses ditolak). Apabila ada pengguna login dengan email [email protected], hasil dari fungsi tersebut akan true, mengizinkan pengguna tersebut mengakses Log Viewer.

Opsi 2: Menggunakan Gate viewLogViewer

Cara kedua yaitu menggunakan Laravel Gates, buka app/Providers/AuthServiceProvider.php lalu tulis kode seperti di bawah ini di dalam method boot().

				
					use App\Models\User;
use Illuminate\Support\Facades\Gate;
 
/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();
 
    Gate::define('viewLogViewer', function (?User $user) {
        // return true if the user is allowed access to the Log Viewer
    });
}

				
			

Misalnya seperti ini:

				
					use App\Models\User;
use Illuminate\Support\Facades\Gate;

public function boot()
{
    $this->registerPolicies();

    Gate::define('viewLogViewer', function (?User $user) {
        return $user && in_array($user->email, [
            'admin@example.com',
        ]);
    });
}

				
			

Pilih salah satu metode saja ya, Sob. LogViewer::auth() lebih cocok untuk aplikasi kecil-menengah, sementara Gate lebih fleksibel untuk proyek dengan sistem role/permission.

Step 5: Ganti Middleware di config/log-viewer.php

Buka dan edit file config/log-viewer.php pada folder nama-proyek-laravel. Dalam artikel ini nama-proyek-laravel yaitu: arsip-persuratan, jadi sesuaikan dengan nama proyek kamu, Sob.

4-cara-menampilkan-log-error-laravel-hosting

Ubah:

				
					'middleware' => [
    'web',
    \Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
],

				
			

Menjadi:

				
					'middleware' => [
    'web',
    'auth',
],

				
			

Ini supaya UI log viewer hanya bisa diakses setelah login Laravel. Kemudian klik Save Changes.

Step 6: Refresh Cache Config di Terminal

				
					php artisan config:clear
php artisan config:cache

				
			

Step 7: Akses Laravel Log-Viewer di Browser

Kamu bisa mengakses log viewer di https://domainkamu.com/log-viewer. Jika tidak muncul error, Log Viewer akan menampilkan log error kamu dalam antarmuka yang rapi dan bisa difilter berdasarkan level (error, warning, info, dll).

5-cara-menampilkan-log-error-laravel-hosting

Penjelasan Fitur-Fitur Laravel Log Viewer

Ketika kamu mengakses /log-viewer, kamu akan melihat:

  1. Daftar file log Laravel berdasarkan tanggal, misalnya: laravel-2025-06-21.log, laravel-2025-06-22.log
  2. Filter Level, kamu bisa menyaring log berdasarkan jenis error, warning, info, debug, critical.
  3. Isi Log Lengkap, bagian ini akan ditampilkan secara interaktif, satu baris per entry log. Jika ada stack trace (error panjang), kamu bisa klik untuk melihat detailnya.
  4. Clear Log, tersedia tombol untuk mengahapus isi log.
  5. Download Log, kamu bisa mengunduh file log ke komputer lokal untuk dibaca secara offline.

Dengan log viewer, kamu bisa langsung menganalisis dan mengetahui komponen mana yang bermasalah dalam arsitektur MVC. Tampilan yang mudah digunakan dan fitur lengkap (filter, download, clear), kamu bisa segera mengetahui penyebab error dan memperbaikinya sehingga proses debugging kamu lebih mudah.

Kalau ada yang bikin kamu bingung, silahkan hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket. Dan kalau ada artikel panduan yang belum tersedia, jangan sungkan untuk menyampaikannya juga, ya!

Related Posts
Tips Mengatasi Error Undefined Index / Variable

Pengantar Halo sobat Jagoan! di tutorial kali ini kita bakalan membahas permasalahan Error Undefined Index/Variable. Pasti sekarang kamu lagi main-main Read more

Tutorial Login Ke SSH Secara Otomatis

Kamu ingin melakukan login SSH secara otomatis? Gak perlu bingung karena kamu bisa ikutin tutorial di bawah ini untuk melakukan Read more

Mengenal Jenis-Jenis Internal Server Error

Kode internal server error adalah salah satu kondisi yang sering dijumpai pemilik dan pengunjung website. Apakah kamu juga salah satunya? Read more

Cara Upload Website ke Hosting Jagoan Hosting

Hey Sobat Jagoan, seperti yang Kamu tahu bahwa website yang mampu bekerja dengan database dengan konten yang berubah-ubah disebut juga Read more