Lompat ke konten Lompat ke sidebar Lompat ke footer

CodeNicter Login File Contoh

Php coding examples


Logging adalah aktivitas umum yang harus dilakukan sebagian besar aplikasi untuk melacak aktivitas, untuk berjaga-jaga jika Anda perlu menganalisis aktivitas sebelumnya untuk menemukan penyebab masalah apa pun.
Baca artikel ini untuk belajar dari contoh tentang cara menerapkan teknik logging yang dapat digunakan dalam PHP menyimpan informasi yang dicatat dalam file.
:

Apa itu Pencatatan?

Mengapa Anda Harus Menulis Informasi Log ke File?

Apa yang Harus Dicatat?

Logging File Sederhana melalui Kelas Logging PHP

1. Instalasi Kelas File Logging PHP

2. Gunakan Kelas di Aplikasi Anda

3. Baca File Log

4. Periksa Kelas File Log

Mengunduh Semua File Paket

Menginstal Paket dengan Komposer

Kesimpulan

Apa itu Pencatatan?

Anda mungkin sudah memiliki pemahaman intuitif tentang apa itu logging, tetapi masih ada baiknya meluangkan waktu untuk memahami definisi yang tepat yang dapat kita kembangkan. Kami telah mendefinisikan logging dengan cara ini:

Logging adalah aktivitas yang terdiri dari terus-menerus merekam informasi tentang perilaku runtime aplikasi.

Ada dua poin penting yang perlu diperhatikan di sini.

Pertama, logging adalah semua tentang perilaku runtime aplikasi. Dengan kata lain, ini tentang merekam peristiwa aplikasi dalam urutan kronologisnya.

Kedua, Anda selalu ingin menyimpan log pada media yang persisten (non-volatile). Arti sebenarnya dari "persisten" tergantung pada kebutuhan dan lingkungan Anda, tetapi setidaknya Anda ingin dapat membaca log meskipun aplikasi - atau seluruh server - mogok.

Namun, secara umum, menyimpan sebagai file (teks atau HTML) dalam sistem file sudah cukup.

Meskipun definisi ini menjelaskan apa itu logging, definisi ini tidak menjelaskan mengapa logging itu penting dalam sebuah aplikasi. Ini adalah pertanyaan penting, yang akan saya bahas secara rinci di bawah ini.

Mengapa Anda Harus Menulis Informasi Log ke File?

Jika kita hidup di dunia yang ideal, aplikasi kita akan bekerja sesuai rencana. Tetapi kenyataannya adalah bahwa aplikasi yang dirancang dengan baik pun memiliki kekurangan dan dalam bahaya runtuh pada satu titik atau lainnya. Ini menjadi lebih buruk ketika aplikasi tidak dibatalkan dengan pesan kesalahan, tetapi berperilaku dengan cara yang tidak dapat dilacak yang tidak diinginkan.

Jika seorang pengembang yang bekerja pada PC-nya dan menemukan kesalahan, ini biasanya relatif mudah untuk diperbaiki. Lagi pula, pengembang tahu apa yang sedang dia kerjakan dan urutan peristiwa yang menyebabkan kesalahan. Dia juga dapat men-debug aplikasinya dan dengan demikian memperoleh banyak informasi tambahan tentang sistem.

Tetapi pada titik tertentu dia harus merilis aplikasi untuk penggunanya.  Aplikasi dapat digunakan dengan cara yang tidak direncanakan atau di lingkungan yang tidak dimaksudkan, dan mungkin ada banyak pengguna yang mengakses aplikasi secara bersamaan.

Selain itu, aplikasi harus berfungsi untuk jangka waktu yang lebih lama. Debugging kesalahan dalam situasi ini sangat sulit tanpa informasi tambahan.

Merekam perilaku runtime aplikasi Anda memungkinkan Anda untuk menyelidiki semua jenis perilaku yang tidak diinginkan sesudahnya. Dengan kata lain, bahkan jika aplikasi Anda mogok dan kehilangan semua status waktu prosesnya, log aplikasi akan membantu Anda memahami apa yang menyebabkan mogok.

Tetapi manfaat protokol tidak berhenti di situ. Log menjadi sangat berharga ketika pengguna melaporkan bug: Anda dapat mengaudit aplikasi Anda, termasuk audit retrospektif (apa yang terjadi pada hari tertentu pada waktu tertentu).

File log dapat dianalisis kapan saja, dan misalnya, memperingatkan tentang kemungkinan masalah kinerja; dan banyak lagi.

Singkatnya: Pencatatan file adalah suatu keharusan untuk aplikasi perangkat lunak karena memberi Anda gambaran umum tentang riwayat runtime aplikasi Anda.

Apa yang Harus Dicatat?

Pendekatan logging ke file memenuhi persyaratan ketekunan karena menyimpan log dalam file dapat dibaca nanti oleh pengembang aplikasi.

Namun, itu tidak selalu baik untuk merekam semua aktivitas waktu nyata karena kita tidak selalu tahu kapan persisnya setiap peristiwa tertentu terjadi dan merekam setiap peristiwa aplikasi kecil mungkin sangat melelahkan.

Ini mengarah ke pertanyaan yang lebih umum: Informasi apa yang harus dicatat?

Ini adalah praktik umum untuk menyertakan setidaknya informasi berikut di setiap entri log:

  • cap waktu  - Kapan tepatnya peristiwa yang dijelaskan oleh entri log terjadi? Untuk membuat hidup lebih mudah, tanggal/waktu ISO 8601 yang diformat dengan benar dalam UTC harus digunakan.
  • konteks acara  - Misalnya, akan menjadi ide yang buruk untuk mencatat "Nama: tes; email: mail@example.com", karena Anda mungkin akan lupa apa artinya dalam waktu satu bulan. Berikut adalah alternatif yang lebih baik untuk membuat entri log lebih deskriptif: "Login: User=test eMail=mail@example.com"
  • Tingkat keparahan protokol  - Seperti "Kesalahan", "Peringatan", "Info", dll. Informasi ini memberikan konteks tambahan dan memungkinkan pemfilteran log yang mudah berdasarkan tingkat keparahan.

Saya menyarankan agar daftar di atas harus dianggap sebagai dasar mutlak untuk strategi logging yang baik dan informasi yang tidak kurang dari ini harus dicatat. Jika tidak, akan sangat sulit untuk membaca dan memahami log.

Juga artikel lengkap hanya untuk dilihat sebagai pedoman yang sangat dasar. Ini adalah pengantar, tetapi tentu saja masih banyak lagi yang bisa dikatakan tentang pencatatan file. Saya merekomendasikan untuk membaca " Logging Cheat Sheet " OWASP untuk mendapatkan gambaran yang lebih luas tentang topik penting ini.

Logging File Sederhana melalui Kelas Logging PHP

Tentu, Anda dapat memprogram solusi logging Anda sendiri, tetapi menurut saya itu adalah pekerjaan yang tidak perlu. Sebagian besar waktu Anda masuk hanya karena Anda harus melakukannya, maksud saya itu bukan bagian dari fungsi utama aplikasi. Setiap menit yang dapat disimpan untuk mengimplementasikan solusi logging adalah satu menit yang dapat Anda masukkan ke dalam fungsionalitas inti aplikasi utama.

Untungnya, persyaratan untuk solusi logging sangat mirip untuk jutaan pengembang, sehingga solusi standar dapat diselesaikan dalam bentuk kelas logging. Pustaka PHP siap pakai ini , hanya perlu diimpor dan dapat digunakan di proyek PHP apa pun.

Biasanya Anda tidak perlu khawatir tentang fungsionalitas yang tepat. Dengan kata lain, tidak perlu menemukan kembali roda dalam hal logging file log.

Izinkan saya memperkenalkan kelas logging sederhana saya di PHP  di bagian selanjutnya, saya akan menunjukkan bagaimana ini dapat digunakan dalam proyek apa pun.

1. Instalasi Kelas File Logging PHP

Jika Anda mengembangkan aplikasi Anda dengan PHP, cukup salin file kelas log ke direktori root Anda. Untuk informasi lebih lanjut, lihat catatan dokumentasi di awal kelas.

Berikut adalah file log PHP class log.inc.php sebagai source code lengkap (hanya 200 baris). Anda dapat mengunduhnya di sini sehingga Anda dapat menggunakannya di lingkungan pengembangan Anda.

class.iqnc.php


 L angkah selanjutnya adalah menggunakan kelas logging dari dalam kode PHP Anda.

2. Gunakan Kelas di Aplikasi Anda

Untuk menggunakan kelas dalam kode Anda, Anda hanya perlu memuatnya saat diperlukan. Untuk tujuan ini, kode PHP Anda dapat mengakses kelas sebagai berikut. Yang perlu Anda lakukan adalah meletakkan kode berikut di awal skrip PHP Anda:

<?php
require_once __DIR__ . 'log.inc.php';

Sebelumnya, kelas protokol dimuat dan dengan demikian fungsi tertentu diimpor. Sekarang Anda membuat instance protokol baru:

$log = new log();

atau sama dengan pengalihan opsi:


 
berikut dapat diberi nama dan diteruskan dalam array: 
A. jalur — Bawaan: '.' zB '/path/to/logfile' ATAU '.' 
dan file log dibuat di direktori saat ini.
B. filename — Default: 'log' 
Nama file log yang dilengkapi dengan garis bawah '_' dan tanggal dalam format Ymd.
C. syslog — Default: false Jika parameter ini disetel ke true, kelas menggunakan fungsi log sistem. 
Ini bekerja lebih cepat, tetapi hanya dalam format txt ! file
D. Permission — Default: 0644 
Harus selalu ditentukan dalam format oktal (yaitu dengan awalan 0), misalnya 0777 
E.maxSize — Default: 10 Ukuran file log maksimum dalam MB pada hari yang sama (sebelum file log ditimpa) Format - Default: 'htm'
 Anda dapat menggunakan 'htm' untuk format HTML, 'txt' untuk format teks dengan TAB (\ t) pemisahan dan 'csv' untuk c omma- s eparated v alues, yaitu nilai terpisah koma (https: //de.wikipedia.org/wiki/CSV_(format file)) dengan pemisahan (,). 
Pada saat yang sama format digunakan sebagai ekstensi file dari file log, juga untuk 'txt' dan 'csv'. F. template — Default: '' 
Template hanya digunakan jika format 'htm' dipilih! 
Kemungkinan ada di sini: 'terminal' 
untuk (http://terminalcss.xyz) atau 'barecss' untuk (http://barecss.com) atau 'plain' 
untuk 
HTML sederhana. 
G. timeZone — Default: 'UTC' UTC' singkatan dari 
Universal Time Coordinated, sebelumnya juga secara resmi disebut GMT (Greenwich Mean Time). Berikut adalah daftar semua zona waktu lainnya: http://php.net/manual/de/timezones.php
H. dateFormat — Default: 'Ymd H:i:s' Semua informasi tentang format tanggal dapat ditemukan di sini: http://php.net/manual/de/function.date.php I. backtrace — Default: true Jika benar, 
tidak hanya skrip yang menulis entri log yang dicatat, tetapi juga nomor baris panggilan ditambahkan dalam tanda kurung. 
Ini bisa sangat berguna untuk debugging, tetapi fungsi backtrace sedikit memperlambat proses logging! Secara alami, tidak semua parameter harus diatur pada saat yang sama, tetapi nilai individual dapat digunakan sesuai keinginan.
 Nilai default dari kelas kemudian secara otomatis digunakan untuk semua yang tidak digunakan. Setelah menginisialisasi objek protokol, fungsi protokol baru dapat digunakan sebagai berikut:
   
Atau, jika Anda ingin menetapkan nilai status sendiri dari 100 (debug) menjadi 900 (gau) dalam langkah 100 (di mana tingkat keparahan meningkat dengan angka yang lebih tinggi):
$log->debug($logMessage);
$log->write($logMessage, $status);

Secara keseluruhan, file example.php bisa terlihat seperti ini:

<?php
require_once __DIR__ . 'log.inc.php';

$log=new log();

$logMessage = 'This is the log message';

$log->error($logMessage);

Variabel $logMessage dapat berupa string atau array. Dengan array, nilai individu digabungkan untuk membentuk string dan dihubungkan dengan spasi.

Ada juga fungsi publik yang tersedia untuk mengubah ukuran file log maksimum:

// Overrides the options setting and sets the maximum log file size to 10 MB
$log->maxSize(10);

Ini berarti bahwa beberapa pra-konfigurasi diperlukan, tetapi prosedur ini membuat pencatatan menjadi lebih jelas dan mudah. Dalam aplikasi nyata biasanya banyak kejadian yang harus dicatat, jadi prosedur ini sangat berguna.

3. Baca File Log

Jika Anda memanggil example.php di browser Anda lagi, entri log baru akan ditambahkan ke file log Anda.

Berikut adalah entri log asli:

This is the log message

Dan inilah yang dihasilkan kelas log darinya:

2019-02-03 12:31:06 localhost/example.php (121) This is the log message 500 ERROR

Seperti yang Anda lihat, kelas log secara otomatis menambahkan informasi berikut ke entri log:

  • Stempel waktu
  • Skrip panggilan (dengan nomor baris panggilan fungsi)
  • Keparahan protokol

Petunjuk : Berikut adalah script PHP yang baik untuk melihat file CSV online: PHP CSV Editor Alat ini dapat mengambil dan mengubah informasi yang tersimpan dalam file CSV (Comma Separated Values) dengan mudah.

Sudah ada tiga template yang tersedia untuk format HTML:

Templat untuk Opsi 'templat' => 'polos':


mplat untuk Opsi 'templat' => 'terminal':
Templat untuk Opsi 'templat' => 'barecss':
Dan yang terbaik adalah, Anda tidak harus mengurus semua hal ini sendiri, itu terjadi secara otomatis. 4. Periksa Kelas File Log Dengan skrip dan data uji berikut, kelas File Log PHP dapat diuji secara menyeluruh: tes.php Skrip:  

test_messages.txt Data Uji:

Continue Switching Protocols Processing OK Created Accepted Non-Authoritative Information No Content Reset Content Partial Content Multi-Status Already Reported IM Used Multiple Choices Moved Permanently Found See Other Not Modified Use Proxy Switch Proxy Temporary Redirect Permanent Redirect Bad Request Unauthorized Payment Required Forbidden Not Found Method Not Allowed Not Acceptable Proxy Authentication Required Request Timeout Conflict Gone Length Required Precondition Failed Request Entity Too Large Request-URI Too Long Unsupported Media Type Requested Range Not Satisfiable Expectation Failed I'm a teapot (April fool's joke) Authentication Timeout Enhance Your Calm Method Failure Unprocessable Entity Locked Failed Dependency Method Failure Unordered Collection Upgrade Required Precondition Required Too Many Requests Request Header Fields Too Large No Response Retry With Blocked by Windows Parental Controls Redirect Unavailable For Legal Reasons Request Header Too Large Cert Error No Cert HTTP to HTTPS Client Closed Request Internal Server Error Not Implemented Bad Gateway Service Unavailable Gateway Timeout HTTP Version Not Supported Variant Also Negotiates Insufficient Storage Loop Detected Bandwidth Limit Exceeded Not Extended Network Authentication Required Network read timeout error Network connect timeout error

Dengan skrip ini (test.php) dan data pengujian (test_messages.txt), log pengujian dapat dibuat dan semua opsi dapat dicoba dengan nyaman. Bersenang-senang dengan itu!

Mengunduh Semua File Paket

Jika Anda ingin menggunakan file paket ini di komputer pengembangan Anda, Anda bisa

 pergi ke sini dan mengunduh semua file paket

Kamu juga dapat melihat file lainya yang mungkin kamu perlukan

dalam satu arsip terkompresi dalam format ZIP atau tar.gz.

Menginstal Paket dengan Komposer

Jika Anda ingin menggunakan instal file paket ini dalam pengembangan Anda atau bahkan di lingkungan produksi, Anda dapat  pergi ke sini dan menemukan petunjuk untuk menambahkan paket ini ke file composer.json proyek Anda .

Kesimpulan

Saya telah menjelaskan dasar-dasar pencatatan file di PHP, yang seharusnya cukup untuk membantu Anda memulai. Namun demikian, Anda mungkin ingin mencari lebih banyak informasi untuk memperdalam pemahaman Anda.

Jika Anda ingin menggunakan kelas log saya (yang dapat Anda lakukan dengan senang hati), Anda sebaiknya meluangkan waktu untuk menguji fungsionalitasnya. Kelas logging PHP ini sangat dapat dikonfigurasi, sehingga pada dasarnya harus mencakup sebagian besar kebutuhan logging.

Tapi tentu saja saya sangat berterima kasih atas saran apapun mengenai artikel ini, misalnya sebagai komentar!

Karena aplikasi biasanya meningkat dalam ukuran dan kompleksitas selama masa pakainya, file log tidak boleh dihindari dalam keadaan apa pun. Tanpa file log, akan sulit untuk menemukan kesalahan dalam aplikasi dalam operasi langsung.

Jadi pastikan untuk menggunakan file logging di proyek PHP Anda! Dan ingat: Anda dapat mencurigai banyak penyebab kesalahan, Anda biasanya hanya mengetahui penyebab pastinya setelah melihat ke dalam file log. Dengan asumsi Anda biasanya lebih salah dari yang Anda pikirkan. Tetapi untuk ini, Anda harus menulis entri log di semua tempat yang relevan

Oleh van Gato Jerman. Phpclasses.

Posting Komentar untuk "CodeNicter Login File Contoh"