Melog masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan oleh LogTrait, yang merupakan nenek moyang yang sama untuk hampir semua kelas CakePHP.
Konfigurasi Pengelogan
Kami boleh mengkonfigurasi fail log masuk config/app.php. Terdapat bahagian log dalam fail, di mana anda boleh mengkonfigurasi pilihan pengelogan seperti yang ditunjukkan dalam tangkapan skrin berikut.
Secara lalai, anda akan melihat dua peringkat log − ralat dan nyahpepijat sudah dikonfigurasikan untuk anda. Setiap satu akan mengendalikan tahap mesej yang berbeza.
CakePHP menyokong pelbagai peringkat pembalakan seperti yang ditunjukkan di bawah −
Kecemasan − Sistem tidak boleh digunakan
Amaran − Tindakan mesti diambil segera
Kritis − Keadaan kritikal
Ralat − Keadaan ralat
Amaran − Syarat amaran
Notis − Keadaan normal tetapi ketara
Maklumat − Mesej maklumat
Nyahpepijat − Mesej peringkat nyahpepijat
Menulis ke fail Log
Terdapat dua cara, kita boleh menulis dalam fail Log.
Pertama ialah menggunakan kaedah write() statik. Berikut ialah sintaks kaedah write() statik.
Sintaks |
tulis( integer|rentetan $level, bercampur $message, rentetan|array $context [] ) |
Parameter |
Syntax |
write( integer|string $level, mixed $message, string|array $context [] ) |
Parameters |
The severity level of the message being written. The value must be an integer or string matching a known level.
Message content to log.
Additional data to be used for logging the message. The special scope key can be passed to be used for further filtering of the log engines to be used. If a string or a numerically index array is passed, it will be treated as the scope key. See CakeLogLog::config() for more information on logging scopes.
|
Returns |
boolean |
Description |
Writes the given message and type to all of the configured log adapters. Configured adapters are passed both the $level and $message variables. $level is one of the following strings/values. |
Tahap keterukan mesej yang sedang ditulis. Nilai mestilah integer atau rentetan yang sepadan dengan tahap yang diketahui.
Mesej kandungan untuk log.
Data tambahan untuk digunakan untuk mengelog mesej. Kunci skop khas boleh dihantar untuk digunakan untuk penapisan lanjut enjin log yang akan digunakan. Jika rentetan atau tatasusunan indeks secara berangka diluluskan, ia akan dianggap sebagai kunci skop. Lihat CakeLogLog::config() untuk mendapatkan maklumat lanjut tentang skop pengelogan.
|
Pemulangan |
boolean |
Penerangan |
Menulis mesej yang diberikan dan menaip kepada semua penyesuai log yang dikonfigurasikan. Penyesuai yang dikonfigurasikan diluluskan kedua-dua pembolehubah $level dan $message. $level ialah salah satu daripada rentetan/nilai berikut. |
Yang kedua ialah menggunakan fungsi log()
yang tersedia pada mana-mana menggunakan LogTrait Log panggilan() akan memanggil secara dalaman Log::write()
−
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
$builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
'httpOnly' => true,
]));
$builder->applyMiddleware('csrf');
//$builder->connect('/pages',
['controller'=>'Pages','action'=>'display', 'home']);
$builder->connect('logex',['controller'=>'Logexs','action'=>'index']);
$builder->fallbacks();
});
Salin selepas log masuk
Contoh
Buat perubahan dalam fail config/routes.php seperti yang ditunjukkan dalam program berikut.
config/routes.php
<?php namespace App\Controller;
use App\Controller\AppController;
use Cake\Log\Log;
class LogexsController extends AppController{
public function index(){
/*The first way to write to log file.*/
Log::write('debug',"Something didn't work.");
/*The second way to write to log file.*/
$this->log("Something didn't work.",'debug');
}
}
?>
Salin selepas log masuk
Buat fail LogexsController.php di src/Controller/LogexsController.php. Salin kod berikut dalam fail pengawal.
src/Controller/LogexsController.php
Buat direktori
Something is written in log file. Check log file logs\debug.log
Salin selepas log masuk
Logexs di
src/Template dan di bawah direktori itu cipta fail
View yang dipanggil index.php. Salin kod berikut dalam fail itu.
src/Template/Logexs/index.php
Laksanakan contoh di atas dengan melawati URL berikut.
http://localhost/cakephp4/logex
Output
Setelah pelaksanaan, anda akan menerima output berikut.
Log akan ditambahkan pada fail log/debug.log −
Atas ialah kandungan terperinci Pembalakan CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!