CodeIgniter middleware: Tambahkan pengelogan prestasi dan pengelogan ralat pada aplikasi
Petikan:
Pengelogan prestasi dan pengelogan ralat adalah sangat kritikal semasa membangunkan aplikasi web. Untuk memantau dan mengoptimumkan prestasi aplikasi dengan berkesan, kami perlu mendapatkan masa pelaksanaan aplikasi dan merekodkan maklumat ralat yang dijana dalam aplikasi. CodeIgniter menyediakan fungsi middleware yang boleh menambah log prestasi dan fungsi rakaman ralat pada aplikasi dengan mudah. Artikel ini akan memperkenalkan cara menggunakan perisian tengah dalam CodeIgniter untuk melaksanakan pengelogan prestasi dan fungsi rakaman ralat.
1. Cipta middleware
Pertama, kita perlu mencipta kelas middleware. Dalam CodeIgniter, kelas middleware ialah kelas yang mewarisi kelas CI_Middleware. Kami boleh meletakkan kelas middleware dalam direktori aplikasi/middleware (jika direktori itu tidak wujud, anda perlu menciptanya secara manual). Berikut ialah kod untuk kelas middleware contoh:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class PerformanceLoggerMiddleware extends CI_Middleware { public function handle(RequestInterface $request, Closure $next) { // 记录请求开始时间 $startTime = microtime(true); // 执行下一个中间件或路由处理器 $response = $next($request); // 计算请求执行时间 $endTime = microtime(true); $executionTime = $endTime - $startTime; // 将执行时间记录到日志中 log_message('info', 'Request execution time: ' . $executionTime); return $response; } }
Dalam kod di atas, kami telah mencipta kelas middleware yang dipanggil PerformanceLoggerMiddleware. Kelas middleware ini mewarisi kelas CI_Middleware dan melaksanakan kaedah pemegang. Kaedah pemegang menerima objek RequestInterface dan objek Penutupan sebagai parameter. Dalam kaedah pemegang, kami mula-mula merekodkan masa apabila permintaan bermula, kemudian melaksanakan middleware atau pemproses laluan seterusnya, kemudian mengira masa apabila permintaan itu dilaksanakan dan merekodkannya dalam log aplikasi.
2. Daftar middleware
Seterusnya, kita perlu mendaftarkan middleware ke dalam CodeIgniter. Untuk mencapai ini, kita perlu melakukan beberapa konfigurasi. Mula-mula, buka fail application/config/config.php, cari item konfigurasi berikut dan tetapkannya kepada benar:
$config['enable_hooks'] = true;
Kemudian, buka fail application/config/hooks.php dan tambah kod berikut dalam coretan kod di bawah:
$hook['pre_system'][] = [ 'class' => 'PerformanceLoggerMiddleware', 'function' => 'handle', 'filename' => 'PerformanceLoggerMiddleware.php', 'filepath' => 'middleware', ];
Dalam kod di atas, kami mendaftarkan kelas PerformanceLoggerMiddleware sebagai fungsi pemprosesan cangkuk pra_sistem. Ini bermakna kaedah pengendalian PerformanceLoggerMiddleware akan dilaksanakan sebelum setiap permintaan diproses.
3 Uji middleware
Sekarang kami telah menyelesaikan penciptaan dan pendaftaran middleware, kami boleh mengujinya. Kami boleh menguji ini dengan mengubah suai Pengawal utama aplikasi. Berikut ialah contoh kod Pengawal:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { sleep(1); // 模拟一个耗时操作 $this->load->view('welcome_message'); } }
Dalam kod di atas, kami mensimulasikan operasi yang memakan masa (menggunakan fungsi tidur) dan kemudian memuatkan fail paparan. Apabila kami mengakses Pengawal, perisian tengah merekodkan masa pelaksanaan permintaan dan logkannya ke fail log aplikasi.
4. Lihat log
Akhir sekali, kita boleh melihat log prestasi yang direkodkan oleh perisian tengah dengan membuka fail log aplikasi. Dalam CodeIgniter, fail log lalai disimpan dalam direktori aplikasi/log. Berikut ialah kandungan fail log sebagai contoh:
INFO - 2019-01-01 10:00:00 --> Request execution time: 1.02345204353
Dalam contoh di atas, kita dapat melihat bahawa masa pelaksanaan permintaan direkodkan.
Ringkasan:
Dengan menggunakan perisian tengah dalam CodeIgniter, kami boleh menambah pengelogan prestasi dan keupayaan pengelogan ralat pada aplikasi kami dengan mudah. Dalam artikel ini, kami memperkenalkan cara membuat kelas perisian tengah dan mendaftarkannya dengan CodeIgniter. Dengan contoh mudah, kami menunjukkan cara menggunakan perisian tengah untuk merekodkan masa pelaksanaan permintaan dan logkannya ke fail log aplikasi. Pendekatan ini boleh membantu kami memantau dan mengoptimumkan aplikasi web kami dengan lebih baik serta memberikan pengalaman pengguna yang lebih baik.
Atas ialah kandungan terperinci CodeIgniter middleware: Tambahkan pengelogan prestasi dan pengelogan ralat pada aplikasi anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!