Belajar PHP: Membuat Aplikasi Logging (pencatat) Aktivitas

Pencatatan aktivitas sistem bagi script/software kita sangat diperlukan untuk mengetahui apapun informasi dari tiap eksekusi skrip PHP yang telah dibuat. Pencatatan atau Logging ini terutama sangat perlu untuk aplikasi Sistem Informasi. Beberapa sistem informasi yang pernah saya kerjakan misalnya melakukan pencatatan tiap aksi yang dilakukan oleh pengguna sehingga mudah dilacak apa saja yang mereka lakukan dan mereka dapatkan.

Ada beberapa teknik yang bisa digunakan, antara lain: pencatatan aksi ke database, dan pencatatan aksi ke file log. Sudah tentu pencatatan aksi ke database adalah teknik yang paling mudah dilakukan dan dikelola. Untuk menambah catatan, tinggal melakukan query insert ke SQL, dan untuk membacanya tinggal gunakan query select. Dari pengalaman saya, teknik ini punya kekurangan besar yaitu pemborosan trafik akses database dan storage database (bisa jutaan baris per bulan). Untuk sebuah sistem informasi akademik misalnya, pada hari-hari sibuk, ratusan aksi bisa dicatat pada database dan sibuknya bisa memaksa engine database bekerja keras.

Teknik kedua yang akan kita bahas disini adalah teknik pencatatan ke file log. File ini hanyalah file biasa dan bisa dibaca dengan pelbagai software, tak perlu engine database. Berikut adalah contoh teknik pencatatan ke file.

<?php
//definisikan nama file log, berubah tiap bulannya
$_logfilename = "log_".date("Y-m"); //nama log: log_2011-02

// jika file log belum ada, buat dulu
if(!file_exists($_logfilename)){
    $_logfilehandler = fopen($_logfilename,'w'); #buat file dengan akses tulis penuh
    fwrite($_logfilehandler, "/* File log untuk Sistem Informasi Akademik */\n"); #tulis header untuk file log, jika perlu
    fclose($_logfilehandler);
}else{
    $_logfilehandler = fopen($_logfilename,'a'); #akses file dengan modus buka/tulis
}

// misalnya untuk aksi A
fwrite($_logfilehandler,'User X melakukan aksi A');
fclose($_logfilehandler);
?>

Contoh diatas bisa dikembangkan untuk beberapa trik kecil misalnya memisah log file berdasarkan keperluan, misalnya mencatat eksekusi skrip dengan parameter/argument dan kecepatannya, mencatat aksi pengguna dll.

12 Comments


  1. kok error bos… cara pakenya gimana?

    Reply

    1. itu tinggal dipake sourcenya, errornya dibagian mana?

      Reply

      1. error di line 6…
        pas buat file log-nya

        Reply

        1. kog saya nggak ada masalah ya, coba permission directorynya diatur dulu supaya writable

          Reply

  2. saya juga coba tapi tdk bisa sama error di fle 6

    Reply

      1. oops, kayanya salah nulis di source blog ini, file_exist harusnya file_exists (tambah huruf s) doang.

        sekarang source yang diblog seharusnya dah bener, đŸ˜€

        Reply

    1. rekomendasi saya sih dijadiin function trus dicatet disetiap kali ada hal yang perlu. bacanya bisa dengan memparsing file tersebut, tidak dicantumkan di tutorial diatas memang.

      Reply

  3. maaf maz ane masih gagal paham bisa tolong di jelasin?? ini log untuk recird login kan?? nah ane mau pake buat pencarian log activity kaya gmn ya ane mash gagal paham thx before

    Reply

    1. sebenarnya ngga cuma catet login saja. sederhananya, semua aktivitas user (klik link atau klik menu) semua di catet. untuk nyatet gimana caranya? ya bikin fungsi php untuk insert aktivitasnya ke tabel database yg kita pengen

      Reply

Leave a Reply