CakePHP 日志记录

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

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

   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 教程

相关文章