CakePHP 日志記錄

cakephp 日志記錄

 

登錄 cakephp 是一項(xiàng)非常簡(jiǎn)單的任務(wù)。您只需要使用一種功能。您可以為任何后臺(tái)進(jìn)程(如 cronjob)記錄錯(cuò)誤、異常、用戶(hù)活動(dòng)、用戶(hù)采取的操作。在 cakephp 中記錄數(shù)據(jù)很容易。 log() 函數(shù)由 logtrait 提供,它是幾乎所有 cakephp 類(lèi)的共同祖先。

 

日志配置

我們可以在文件 config/app.php 中配置日志。 文件中有一個(gè)日志部分,您可以在其中配置日志選項(xiàng),如下面的屏幕截圖所示。

默認(rèn)情況下,您將看到兩個(gè)日志級(jí)別- error 和 debug 已為您配置。每個(gè)將處理不同級(jí)別的消息。

cakephp 支持各種日志級(jí)別,如下所示:

  • emergency-系統(tǒng)無(wú)法使用
  • alert-必須立即采取行動(dòng)
  • critical-關(guān)鍵條件
  • error-錯(cuò)誤條件
  • warning-警告條件??
  • notice-正常但重要的情況
  • info-信息性消息
  • debug-調(diào)試級(jí)別的消息

 

寫(xiě)入日志文件

我們可以通過(guò)兩種方式寫(xiě)入日志文件。

第一種是使用靜態(tài) write() 方法。以下是靜態(tài) write() 方法的語(yǔ)法。

語(yǔ)法 write(integer|string $level, mixed $message, string|array $context [] )
parameters

正在寫(xiě)入的消息的嚴(yán)重性級(jí)別。該值必須是與已知級(jí)別匹配的整數(shù)或字符串。

要記錄的消息內(nèi)容。

用于記錄消息的附加數(shù)據(jù)。可以傳遞特殊范圍鍵以用于進(jìn)一步過(guò)濾要使用的日志引擎。如果傳遞了字符串或數(shù)字索引數(shù)組,它將被視為作用域鍵。有關(guān)日志范圍的更多信息,請(qǐng)參閱 cake\log\log::config()。

returns

布爾值

description

將給定的消息和類(lèi)型寫(xiě)入所有配置的日志適配器。配置的適配器同時(shí)傳遞 $level 和 $message 變量。 $level 是以下字符串/值之一。

第二種是使用 logtrait 上可用的 log() 快捷方式 函數(shù)調(diào)用 log() 將在內(nèi)部調(diào)用 log::write() :

 

示例

在 config/routes.php 文件中進(jìn)行更改,如以下程序所示。

config/routes.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();
});

在 src/controller/logexscontroller.php 中創(chuàng)建一個(gè) logexscontroller.php 文件。 將以下代碼復(fù)制到控制器文件中。

src/controller/logexscontroller.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');
      }
   }
?>

在 src/template 創(chuàng)建一個(gè) logexs 目錄,然后在該目錄下創(chuàng)建一個(gè)名為index.php 的 view 文件。將以下代碼復(fù)制到該文件中。

src/template/logexs/index.php

something is written in log file. check log file logs\debug.log

通過(guò)訪(fǎng)問(wèn)以下 url 執(zhí)行上述示例。

http://localhost/cakephp4/logex

 

輸出

執(zhí)行后,您將收到以下輸出。

日志將被添加到 log/debug.log 文件:

下一節(jié):cakephp 表單處理

cakephp 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频