CakePHP 日志记录
登录 CakePHP 是一项非常简单的任务。您只需要使用一种功能。您可以为任何后台进程(如 cronjob)记录错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。 log() 函数由 LogTrait 提供,它是几乎所有 CakePHP 类的共同祖先。
日志配置
我们可以在文件 config/app.php 中配置日志。 文件中有一个日志部分,您可以在其中配置日志选项,如下面的屏幕截图所示。
默认情况下,您将看到两个日志级别- error 和 debug 已为您配置。每个将处理不同级别的消息。
CakePHP 支持各种日志级别,如下所示:
- Emergency-系统无法使用
- Alert-必须立即采取行动
- Critical-关键条件
- Error-错误条件
- Warning-警告条件
- Notice-正常但重要的情况
- Info-信息性消息
- Debug-调试级别的消息
写入日志文件
我们可以通过两种方式写入日志文件。
第一种是使用静态 write() 方法。以下是静态 write() 方法的语法。
语法 | write(integer|string $level, mixed $message, string|array $context [] ) |
Parameters |
正在写入的消息的严重性级别。该值必须是与已知级别匹配的整数或字符串。 要记录的消息内容。 用于记录消息的附加数据。可以传递特殊范围键以用于进一步过滤要使用的日志引擎。如果传递了字符串或数字索引数组,它将被视为作用域键。有关日志范围的更多信息,请参阅 Cake\Log\Log::config()。 |
Returns |
布尔值 |
Description |
将给定的消息和类型写入所有配置的日志适配器。配置的适配器同时传递 $level 和 $message 变量。 $level 是以下字符串/值之一。 |
第二种是使用 LogTrait 上可用的 log() 快捷方式 函数调用 log() 将在内部调用 Log::write() :
示例
在 config/routes.php 文件中进行更改,如以下程序所示。
config/routes.php
<?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 中创建一个 LogexsController.php 文件。 将以下代码复制到控制器文件中。
src/Controller/LogexsController.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'); } } ?>
在 src/Template 创建一个 Logexs 目录,然后在该目录下创建一个名为index.php 的 View 文件。将以下代码复制到该文件中。
src/Template/Logexs/index.php
Something is written in log file. Check log file logs\debug.log
通过访问以下 URL 执行上述示例。
http://localhost/cakephp4/logex
输出
执行后,您将收到以下输出。
日志将被添加到 log/debug.log 文件:
下一章:CakePHP 表单处理
CakePHP 提供了各种内置标签来轻松安全地处理 HTML 表单。与许多其他 PHP 框架一样,HTML 的主要元素也是使用 CakePHP 生成的。以下是用于生成 HTML 元素的各种函数。以下函数 ...