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.

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

12 Responses

  1. ham says:

    kok error bos… cara pakenya gimana?

  2. budi says:

    saya juga coba tapi tdk bisa sama error di fle 6

  3. Nikko says:

    penempatannya dimna Gan?
    dan baca lognya?

    • Luthfi Emka says:

      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.

  4. 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

Leave a Reply to Ifhtul Emka Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: