09 Mei 2026

Cara Setting Daily Log di Laravel untuk Production Server

Sering mengalami file laravel.log yang makin besar dan sulit dicek di server production? Pada artikel ini teman-teman akan belajar cara setting daily log di Laravel agar log otomatis dipisahkan per hari, lebih rapi, mudah untuk debugging, dan tidak membebani server production.
Cara Setting Daily Log di Laravel untuk Production Server

Pernahkah Anda mendapati server produksi tiba-tiba penuh hanya karena satu file log yang membengkak hingga puluhan gigabyte? Mengelola catatan aktivitas aplikasi bukan sekadar masalah teknis, melainkan tentang menjaga kesehatan ekosistem digital yang Anda bangun. Mari kita bedah bagaimana mengubah sistem logging Laravel menjadi lebih cerdas dan terstruktur.

Mengapa Default Logging Saja Tidak Cukup?

Secara default, Laravel seringkali dikonfigurasi menggunakan driver single. Artinya, semua pesan error, peringatan, dan informasi aktivitas akan ditumpuk dalam satu file bernama laravel.log. Di lingkungan pengembangan (local), ini mungkin bukan masalah. Namun, di production server, file tunggal ini adalah bom waktu.

File log yang terlalu besar tidak hanya menghabiskan ruang penyimpanan (disk space), tetapi juga sangat sulit untuk dibuka atau di-scan menggunakan command line seperti tail atau grep. Di sinilah peran Daily Log menjadi krusial. Dengan membagi log berdasarkan tanggal, Anda mendapatkan manajemen data yang jauh lebih rapi dan terukur.


Langkah Strategis Konfigurasi Daily Log

Untuk mengaktifkan sistem penyimpanan log harian, kita perlu menyentuh dua area utama: file .env dan konfigurasi config/logging.php.

1. Penyesuaian File .env

Langkah pertama dan yang paling praktis adalah mengubah variabel lingkungan. Buka file .env di server Anda dan cari baris LOG_CHANNEL. Ubah nilainya menjadi daily.

LOG_CHANNEL=daily
LOG_LEVEL=error

Tips: Di production, sangat disarankan menyetel LOG_LEVEL ke error atau critical agar file log tidak dipenuhi oleh informasi-informasi kecil (debug) yang tidak perlu.

2. Kustomisasi di logging.php

Setelah mengubah .env, periksa file config/logging.php. Di sinilah kita menentukan berapa lama file log akan disimpan sebelum dihapus otomatis oleh Laravel.

'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
],

Nilai 'days' => 14 berarti Laravel hanya akan menyimpan file log selama 14 hari terakhir. File yang lebih tua dari itu akan dihapus secara otomatis. Ini adalah fitur Log Rotation bawaan yang mencegah storage server Anda meledak.


Optimasi Lanjutan: Memahami Log Stack

Laravel memungkinkan kita untuk mengirim log ke beberapa tempat sekaligus menggunakan channel stack. Misalnya, Anda ingin menyimpan log harian di storage lokal, tetapi juga ingin mengirim error kritis ke layanan eksternal seperti Sentry atau Slack.

Dengan menggunakan stack, Anda memiliki jaring pengaman berlapis. Log harian berfungsi sebagai arsip teknis, sementara notifikasi real-time memastikan tim pengembang segera bergerak saat terjadi anomali.

Best Practices di Production Server

Mengatur driver ke daily hanyalah permulaan. Berikut adalah beberapa praktik terbaik yang sering diabaikan oleh pengembang:

  • Permissions Storage: Pastikan folder storage/logs memiliki izin akses (permission) yang tepat. Biasanya, user web server (seperti www-data atau nginx) harus memiliki hak akses tulis. Gunakan perintah chmod -R 775 storage dan chown -R www-data:www-data storage.
  • Log Cleanup Manual: Jika Anda beralih dari single ke daily, jangan lupa untuk menghapus file laravel.log lama yang sudah terlanjur besar untuk mengosongkan ruang.
  • External Log Analyzer: Untuk aplikasi skala besar, pertimbangkan menggunakan ELK Stack (Elasticsearch, Logstash, Kibana) atau Graylog agar analisis log tidak membebani CPU server aplikasi.

Menangani Masalah Umum: "Permission Denied"

Salah satu masalah yang paling sering muncul saat mengganti konfigurasi log di Linux adalah error Permission Denied. Hal ini terjadi karena file log harian baru dibuat oleh user yang berbeda (misalnya, file log dibuat oleh scheduled task/cron dengan user root, lalu aplikasi web dengan user www-data mencoba menulis ke file yang sama).

Solusinya? Pastikan konfigurasi logging.php menyertakan pengaturan permission dan user:

'daily' => [
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14,
'permission' => 0664,
],

Dengan memberikan permission 0664, file log dapat dibaca dan ditulis oleh grup yang sama, menghindari bentrokan antar user di server.


Refleksi: Log Sebagai Cermin Kualitas

Mengatur Daily Log mungkin terlihat seperti tugas administratif yang membosankan di tengah gairah menulis fitur-fitur baru yang canggih. Namun, sadarilah bahwa sistem logging yang rapi adalah bentuk tanggung jawab kita terhadap masa depan aplikasi.

Sebuah aplikasi yang sukses bukan hanya aplikasi yang berjalan lancar saat semua baik-baik saja, melainkan aplikasi yang mampu bercerita dengan jujur apa yang salah saat badai error datang. Dengan menerapkan sistem log harian, Anda sedang membangun "kotak hitam" pesawat Anda sendiri. Anda menghargai waktu Anda di masa depan dengan memudahkan proses debugging, dan Anda menghargai infrastruktur Anda dengan menjaga efisiensinya.

Teruslah membangun dengan teliti. Karena pada akhirnya, kualitas sebuah karya tidak hanya dilihat dari apa yang tampak di permukaan, tetapi juga dari seberapa rapi pondasi dan catatan yang tersembunyi di baliknya. Selamat mengoptimasi!

Komentar (0)

Tulis Komentar

Belum ada komentar. Jadilah yang pertama berkomentar!

Avoca Code - Solusi berbagai kebutuhan website kamu.

Bergaransi

Developer Berpengalaman

Harga Terjangkau

Transaksi Dijamin Aman


Chat WhatsApp

Made with  by Avoca Code