Perisian tengah Laravel: Tambahkan keupayaan pengelogan dan pemantauan prestasi pada aplikasi
Pengenalan:
Pengelogan dan pemantauan prestasi ialah ciri yang sangat penting semasa membangunkan aplikasi web moden. Log boleh membantu pembangun menjejaki peristiwa, ralat dan pengecualian yang berlaku dalam aplikasi, manakala pemantauan prestasi boleh membantu pembangun mengenal pasti kesesakan prestasi dan mengoptimumkannya. Rangka kerja Laravel menyediakan keupayaan middleware yang berkuasa yang membolehkan pembangun menambahkan keupayaan pengelogan dan pemantauan prestasi dengan mudah pada aplikasi. Artikel ini akan memperkenalkan cara menggunakan perisian tengah Laravel untuk melaksanakan fungsi ini dan menyediakan contoh kod.
1. Apakah perisian tengah Laravel?
Laravel middleware ialah penapis yang boleh dilaksanakan sebelum atau selepas permintaan sampai ke aplikasi. Dengan menggunakan perisian tengah, pembangun boleh melakukan operasi pra-pemprosesan atau pasca-pemprosesan atas permintaan, seperti pengesahan, pengelogan, pemantauan prestasi, dsb. Middleware boleh menambah fungsi tambahan pada aplikasi dan menyediakan organisasi kod yang baik dan kebolehgunaan semula.
2. Tambahkan fungsi pengelogan pada aplikasi
Dalam Laravel, kita boleh menggunakan perisian tengah untuk menambah fungsi pengelogan pada aplikasi. Berikut ialah contoh mudah yang menunjukkan cara menggunakan middleware untuk log masa mula dan tamat setiap permintaan:
Mula-mula, buat middleware yang dipanggil LogMiddleware
: LogMiddleware
的中间件:
php artisan make:middleware LogMiddleware
在生成的app/Http/Middleware/LogMiddleware.php
文件中,添加以下代码:
<?php namespace AppHttpMiddleware; use Closure; use IlluminateSupportFacadesLog; class LogMiddleware { public function handle($request, Closure $next) { $start = microtime(true); // 继续处理请求 $response = $next($request); // 计算请求执行时间 $end = microtime(true); $executionTime = $end - $start; // 记录日志 Log::info('Request completed in ' . $executionTime . ' seconds'); return $response; } }
然后,在app/Http/Kernel.php
文件的$middleware
数组中注册中间件:
protected $middleware = [ // ... AppHttpMiddlewareLogMiddleware::class, ];
现在,每次发起请求时,中间件将会记录请求的执行时间,并将其写入日志中。
三、为应用程序添加性能监控功能
除了日志记录外,我们还可以使用中间件来为应用程序添加性能监控功能。下面是一个简单的示例,展示如何使用中间件计算每个请求的执行时间,并将其记录下来:
首先,创建一个名为PerformanceMiddleware
的中间件:
php artisan make:middleware PerformanceMiddleware
在生成的app/Http/Middleware/PerformanceMiddleware.php
文件中,添加以下代码:
<?php namespace AppHttpMiddleware; use Closure; use IlluminateSupportFacadesDB; use IlluminateSupportFacadesLog; class PerformanceMiddleware { public function handle($request, Closure $next) { $start = microtime(true); // 继续处理请求 $response = $next($request); // 计算请求执行时间 $end = microtime(true); $executionTime = $end - $start; // 获取SQL查询次数 $queryCount = DB::getQueryLog(); $queryCount = count($queryCount); // 记录性能信息 Log::info('Request completed in ' . $executionTime . ' seconds'); Log::info('Number of database queries: ' . $queryCount); return $response; } }
然后,在app/Http/Kernel.php
文件的$middleware
protected $middleware = [ // ... AppHttpMiddlewarePerformanceMiddleware::class, ];
In the >app/Http/Middleware/LogMiddleware.php
fail, tambahkan kod berikut: rrreee
Kemudian, dalam failapp/Http/Kernel.php
, $middleware tatasusunan: <p>rrreee<br>Kini, setiap kali permintaan dibuat, middleware akan merekodkan masa pelaksanaan permintaan dan menulisnya pada log. </p>🎜3. Tambahkan fungsi pemantauan prestasi pada aplikasi🎜Selain pengelogan, kami juga boleh menggunakan perisian tengah untuk menambah fungsi pemantauan prestasi pada aplikasi. Berikut ialah contoh mudah yang menunjukkan cara menggunakan middleware untuk mengira masa pelaksanaan setiap permintaan dan lognya: 🎜🎜Mula-mula, buat middleware yang dipanggil <code>PerformanceMiddleware
: 🎜rrreee🎜In Dalam yang dihasilkan app/Http/Middleware/PerformanceMiddleware.php
fail, tambahkan kod berikut: 🎜rrreee🎜Kemudian, dalam fail app/Http/Kernel.php
Daftarkan middleware dalam $middleware tatasusunan: 🎜rrreee🎜Kini, setiap kali permintaan dibuat, middleware akan mengira masa pelaksanaan permintaan dan bilangan pertanyaan pangkalan data, dan menulisnya pada log untuk membantu analisis Prestasi pembangun. 🎜🎜Ringkasan: 🎜Dengan menggunakan perisian tengah Laravel, kami boleh menambah pengelogan dan keupayaan pemantauan prestasi dengan mudah pada aplikasi kami. Dalam artikel ini, kami menyediakan dua contoh yang menunjukkan cara menggunakan perisian tengah untuk merekodkan masa pelaksanaan permintaan dan bilangan pertanyaan pangkalan data dan menulisnya pada log. Dengan menggunakan perisian tengah ini, pembangun boleh lebih memahami cara aplikasi mereka berjalan dan menala serta mengoptimumkan dengan sewajarnya. Saya harap pembaca dapat memahami penggunaan middleware Laravel melalui artikel ini dan dapat mengaplikasikannya secara fleksibel dalam pembangunan sebenar. 🎜Atas ialah kandungan terperinci Perisian tengah Laravel: Tambahkan pembalakan dan keupayaan pemantauan prestasi pada aplikasi anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!