在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í)行以上程序,您會看到如下頁面。
更多建議: