- CakePHP 教程
- CakePHP - 主页
- CakePHP - 概述
- CakePHP - 安装
- CakePHP - 文件夹结构
- CakePHP - 项目配置
- CakePHP - 路由
- CakePHP - 控制器
- CakePHP - 视图
- CakePHP - 扩展视图
- CakePHP - 查看元素
- CakePHP - 查看活动
- CakePHP - 使用数据库
- CakePHP - 查看记录
- CakePHP - 更新记录
- CakePHP - 删除一条记录
- CakePHP - 服务
- CakePHP - 错误和异常处理
- CakePHP - 日志记录
- CakePHP - 表单处理
- CakePHP - 国际化
- CakePHP - 会话管理
- CakePHP - Cookie 管理
- CakePHP - 安全性
- CakePHP - 验证
- CakePHP - 创建验证器
- CakePHP - 分页
- CakePHP - 日期和时间
- CakePHP - 文件上传
- CakePHP 有用资源
- CakePHP - 快速指南
- CakePHP - 有用的资源
- CakePHP - 讨论
CakePHP - 日志记录
登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。log() 函数由 LogTrait 提供,它是几乎所有 CakePHP 类的共同祖先。
日志记录配置
我们可以在文件config/app.php中配置登录。文件中有一个日志部分,您可以在其中配置日志记录选项,如以下屏幕截图所示。
默认情况下,您将看到已为您配置的两个日志级别 -错误和调试。每个将处理不同级别的消息。
CakePHP 支持各种日志记录级别,如下所示 -
紧急情况- 系统无法使用
警报- 必须立即采取行动
关键- 关键条件
错误- 错误条件
警告- 警告条件
注意- 正常但重要的情况
信息- 信息性消息
调试- 调试级别消息
写入日志文件
我们可以通过两种方式写入日志文件。
第一种是使用静态write()方法。以下是静态write()方法的语法。
句法 | write( 整数|字符串$level , 混合$message , 字符串|数组$context [] ) |
---|---|
参数 |
正在写入的消息的严重级别。该值必须是与已知级别匹配的整数或字符串。 要记录的消息内容。 用于记录消息的附加数据。可以传递特殊范围键以用于进一步过滤要使用的日志引擎。如果传递字符串或数字索引数组,它将被视为范围键。有关日志记录范围的更多信息,请参阅Cake\Log\Log::config() 。 |
退货 | 布尔值 |
描述 | 将给定消息和类型写入所有配置的日志适配器。配置的适配器会传递 $level 和 $message 变量。$level 是以下字符串/值之一。 |
第二种是使用log() 快捷方式函数,任何使用LogTrait 的调用 log() 都会在内部调用Log::write() -
例子
在config/routes.php文件中进行更改,如以下程序所示。
配置/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 的视图文件。将以下代码复制到该文件中。
src/模板/Logexs/index.php
Something is written in log file. Check log file logs\debug.log
通过访问以下 URL 来执行上述示例。
http://localhost/cakephp4/logex
输出
执行后,您将收到以下输出。
日志将添加到 log/debug.log 文件中 -