CakePHP - 记录

登录CakePHP是一项非常简单的任务.你只需要使用一个功能.对于任何后台进程(如 cronjob ),您可以记录错误,例外,用户活动,用户采取的操作.在CakePHP中记录数据很简单; log()函数由 LogTrait 提供,它是几乎所有CakePHP类的共同祖先.

日志记录配置

我们可以配置登录文件 config/app.php .文件中有一个日志部分,您可以在其中配置日志记录选项,如以下屏幕截图所示.

记录配置

默认情况下,您将看到两个日志级别和减号;已经为您配置了错误调试.每个都将处理不同级别的消息.

CakePHP支持各种日志记录级别,如下所示 :

  • 紧急 : 系统无法使用

  • 提醒 : 必须立即采取行动

  • 严重 : 关键条件

  • 错误 : 错误条件

  • 警告 : 警告条件

  • 注意 : 正常但重要的条件

  • 信息 : 信息性消息

  • 调试 : 调试级消息

写入日志文件

我们可以通过两种方式写入日志文件.

第一种是使用静态 write()方法.以下是static write()方法的语法.

语法write(整数|字符串 $ level ,混合 $ message , string | array $ context [])
参数

正在写入的消息的严重性级别.该值必须是与已知级别匹配的整数或字符串.

要记录的消息内容.

用于记录消息的其他数据.可以传递特殊的范围密钥以用于进一步过滤要使用的日志引擎.如果传递字符串或数字索引数组,则将其视为范围键.有关记录范围的更多信息,请参见Cake \Log \Log :: config().

返回boolean
描述将给定的消息和类型写入所有已配置的日志适配器.配置的适配器同时传递$ level和$ message变量. $ level是以下字符串/值之一.

第二种是使用 log()任何使用 LogTrait调用日志()的任何人都可以在内部调用 Log :: write() :

示例

config/routes.php 文件中进行更改,如以下程序所示.

config/routes.php

<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

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

src/Controller/LogexController.php 创建 LogexController.php 文件.将以下代码复制到控制器文件中.

src/Controller/LogexController.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,在该目录下创建一个名为 View 的文件b> index.ctp 的.将以下代码复制到该文件中.

src/Template/Logexs/index.ctp

Something is written in log file. Check log file logs\debug.log

通过访问以下URL执行上述示例.

http://localhost:85/CakePHP/logex

输出

执行后,您将收到以下输出.

Logexs