登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。 log() 函数由 LogTrait 提供,它是几乎所有 CakePHP 类的共同祖先。
日志配置
我们可以在文件config/app.php中配置日志。文件中有一个日志部分,您可以在其中配置日志选项,如下面的屏幕截图所示。
默认情况下,您将看到两个日志级别 - 错误 和 调试 已为您配置。每个将处理不同级别的消息。
CakePHP 支持各种日志级别,如下所示 -
紧急 - 系统无法使用
警报 - 必须立即采取行动
严重 - 严重条件
错误 - 错误条件
警告 - 警告条件
注意 - 正常但重要的情况
信息 - 信息性消息
调试 - 调试级别消息
写入日志文件
我们可以通过两种方式写入日志文件。
第一个是使用静态 write() 方法。以下是静态 write() 方法的语法。
语法 |
write( 整数|字符串 $level, 混合 $message, 字符串|数组 $context [] ) |
参数 |
Syntax |
write( integer|string $level, mixed $message, string|array $context [] ) |
Parameters |
The severity level of the message being written. The value must be an integer or string matching a known level.
Message content to log.
Additional data to be used for logging the message. The special scope key can be passed to be used for further filtering of the log engines to be used. If a string or a numerically index array is passed, it will be treated as the scope key. See CakeLogLog::config() for more information on logging scopes.
|
Returns |
boolean |
Description |
Writes the given message and type to all of the configured log adapters. Configured adapters are passed both the $level and $message variables. $level is one of the following strings/values. |
正在写入的消息的严重级别。该值必须是与已知级别匹配的整数或字符串。
要记录的消息内容。
用于记录消息的附加数据。可以传递特殊范围键以用于进一步过滤要使用的日志引擎。如果传递字符串或数字索引数组,它将被视为范围键。有关日志记录范围的更多信息,请参阅 CakeLogLog::config()。
|
返回 |
布尔值 |
描述 |
将给定的消息和类型写入所有配置的日志适配器。配置的适配器会传递 $level 和 $message 变量。 $level 是以下字符串/值之一。 |
表>
第二种是使用 log() 快捷方式
函数,任何使用 LogTrait 的函数都可用,调用 log() 将在内部调用 Log::write()
−
<?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();
});
登录后复制
示例
在 config/routes.php 文件中进行更改,如以下程序所示。
config/routes.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/Controller/LogexsController.php 创建 LogexsController.php 文件。 将以下代码复制到控制器文件中。
src/Controller/LogexsController.php
在
Something is written in log file. Check log file logs\debug.log
登录后复制
src/Template 处创建一个目录
Logexs 并在该目录下创建一个名为 index.php 的
View 文件。将以下代码复制到该文件中。
src/Template/Logexs/index.php
通过访问以下 URL 来执行上述示例。
http://localhost/cakephp4/logex
输出
执行后,您将收到以下输出。
日志将添加到 log/debug.log 文件中 -
以上是CakePHP 日志记录的详细内容。更多信息请关注PHP中文网其他相关文章!