cakephp 日志記錄
登錄 cakephp 是一項(xiàng)非常簡(jiǎn)單的任務(wù)。您只需要使用一種功能。您可以為任何后臺(tái)進(jìn)程(如 cronjob)記錄錯(cuò)誤、異常、用戶活動(dòng)、用戶采取的操作。在 cakephp 中記錄數(shù)據(jù)很容易。 log() 函數(shù)由 logtrait 提供,它是幾乎所有 cakephp 類的共同祖先。
日志配置
我們可以在文件 config/app.php 中配置日志。 文件中有一個(gè)日志部分,您可以在其中配置日志選項(xiàng),如下面的屏幕截圖所示。
默認(rèn)情況下,您將看到兩個(gè)日志級(jí)別- error 和 debug 已為您配置。每個(gè)將處理不同級(jí)別的消息。
cakephp 支持各種日志級(jí)別,如下所示:
- emergency-系統(tǒng)無法使用
- alert-必須立即采取行動(dòng)
- critical-關(guān)鍵條件
- error-錯(cuò)誤條件
- warning-警告條件??
- notice-正常但重要的情況
- info-信息性消息
- debug-調(diào)試級(jí)別的消息
寫入日志文件
我們可以通過兩種方式寫入日志文件。
第一種是使用靜態(tài) write() 方法。以下是靜態(tài) write() 方法的語法。
語法 | write(integer|string $level, mixed $message, string|array $context [] ) |
parameters |
正在寫入的消息的嚴(yán)重性級(jí)別。該值必須是與已知級(jí)別匹配的整數(shù)或字符串。 要記錄的消息內(nèi)容。 用于記錄消息的附加數(shù)據(jù)??梢詡鬟f特殊范圍鍵以用于進(jìn)一步過濾要使用的日志引擎。如果傳遞了字符串或數(shù)字索引數(shù)組,它將被視為作用域鍵。有關(guān)日志范圍的更多信息,請(qǐng)參閱 cake\log\log::config()。 |
returns |
布爾值 |
description |
將給定的消息和類型寫入所有配置的日志適配器。配置的適配器同時(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
通過訪問以下 url 執(zhí)行上述示例。
http://localhost/cakephp4/logex
輸出
執(zhí)行后,您將收到以下輸出。
日志將被添加到 log/debug.log 文件:
- CodeIgniter 使用數(shù)據(jù)庫(kù)
- CodeIgniter Cookie管理
- CodeIgniter 基準(zhǔn)測(cè)試
- CodeIgniter 安全
- CakePHP 教程
- CakePHP 更新記錄
- CakePHP 表單處理
- CakePHP Cookie 管理
- FuelPHP 控制器
- FuelPHP 路由
- FuelPHP 請(qǐng)求和響應(yīng)
- FuelPHP 模型和數(shù)據(jù)庫(kù)
- FuelPHP 表單編程
- FuelPHP 文件上傳
- Laravel 概述
- Laravel 表單
- Laravel 發(fā)送電子郵件
- Laravel 認(rèn)證
- Laravel 加密
- Laravel 歷史版本記錄