Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembalakan CakePHP

Pembalakan CakePHP

王林
王林asal
2024-09-10 17:26:17728semak imbas

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.

Pembalakan CakePHP

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.

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();
});

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');
      }
   }
?>

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
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.phpPembalakan CakePHP

Pembalakan CakePHPLaksanakan 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 −
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.

Atas ialah kandungan terperinci Pembalakan CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn