CakePHP的日志記錄

2018-01-17 11:43 更新

在CakePHP中記錄日志是一件很容易的事,你只需要使用一個(gè)方法就可以實(shí)現(xiàn)。你可以為任何后臺進(jìn)程(如cronjob)記錄錯(cuò)誤,異常,用戶活動,用戶采取的行動。在CakePHP中記錄數(shù)據(jù)很容易-只要使用log()方法,此方法由LogTrait類提供,LogTrait幾乎是所有的CakePHP類的祖先類。

日志配置

我們可以在config/app.php文件中配置日志,在文件中如下截圖部分可以設(shè)置配置選項(xiàng)。


默認(rèn)情況下,你會看到兩個(gè)日志級別- 錯(cuò)誤調(diào)試已經(jīng)配置好了。他們將處理不同級別的消息。

CakePHP支持多種日志記錄級別如下 -

  • 緊急情況 -系統(tǒng)不可用

  • 警告 -動作必須立即執(zhí)行

  • 關(guān)鍵 -關(guān)鍵狀況

  • 錯(cuò)誤 -錯(cuò)誤狀況

  • 警告(警報(bào)) -警告狀況

  • 通知 -普通但有意義的狀況

  • 信息 -信息性消息

  • 調(diào)試 -調(diào)試級消息

寫入日志文件

我們有兩種方式可以在日志文件中寫入日志。

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

語法write( integer|string $level , mixed $message , string|array $context[] )
參數(shù)說明$level:嚴(yán)重性級別,值必須是與已知級別相匹配的整形或者字符串;
$message:信息內(nèi)容;
$context[]:記錄消息所用的額外數(shù)據(jù),可以傳遞一個(gè)特殊的范圍鍵給要所要用的日志引擎做過濾用。如果傳遞的是一個(gè)字符串或數(shù)字索引數(shù)組,它將被當(dāng)作范圍鍵。更多信息請參考Cake\Log\Log::config()
返回結(jié)果布爾型
說明寫入所給的信息并打印到全部已配置的日志適配器。
適配器傳遞$level和$message變量。$level是以下字符串/值:


第二種方法是使用log()快捷方法,此方法會在內(nèi)部調(diào)用Log::write()方法,在所有使用LogTrait調(diào)用log() 情況下都可用 -

修改config/routes.php文件如下。

config/routes.php文件

<?php
   use CakeCorePlugin;
   use CakeRoutingRouteBuilder;
   use CakeRoutingRouter;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('logex',['controller'=>'Logexs','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

src/Controller/目錄下創(chuàng)建一個(gè)LogexController.php文件。復(fù)制以下代碼至其中。

src/Controller/LogexController.php

<?php
   namespace AppController;
   use AppControllerAppController;
   use CakeLogLog;

   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目錄,并在此Logexs目錄下創(chuàng)建一個(gè)名為index.ctp視圖文件。復(fù)制以下代碼至其中。

src/Template/Logexs/index.ctp

Something is written in log file. Check log file logsdebug.log

通過訪問以下網(wǎng)址執(zhí)行上面的例子。

http://localhost:85/CakePHP/logex

輸出

執(zhí)行以上程序,您會看到如下頁面。



以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號