CakePHP 框架为开发人员提供不同类型的功能,并且是开源工具。例如,从开发角度来看,日志记录非常重要;使用日志可以轻松地发现错误、异常、不同用户活动、操作过程中的用户操作以及任何后台活动等方面的问题。通常,实施日志记录是一项非常简单且节省时间的活动。在 CakePHP 中,我们有一个 log() 函数来记录不同的活动、错误和异常。对于Log的实现,我们需要根据自己的需求配置不同的参数。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
现在让我们看看如何创建登录 CakePHP,如下所示。
在 CakePHP 中记录信息很简单 - log() 工作由 LogTrait 给出,它是某些 CakePHP 类的正常前身。如果设置是 CakePHP 类(控制器、组件和视图),您可以记录您的信息。您还可以直接使用 Log::write()。请参阅写入日志。
日志流监督器对于您的应用程序或模块的一部分至关重要。例如,如果您有一个名为 DatabaseLog 的数据库伐木工人作为您的应用程序的组件;它将被设置在
application/Lib/Log/Engine/DatabaseLog.php.
假设您有一个信息库 lumberjack 作为模块组件,它将被放置在 application/Plugin/LoggingPack/Lib/Log/Engine/DatabaseLog.php 中。安排好后,CakeLog 会尽力堆叠配置日志流,这是通过调用 CakeLog::config() 来完成的。安排我们的数据库日志类似于:
App::uses('BaseLog', 'Log/Engine'); class DatabaseLog extends BaseLog { public function __construct($options = array()) { parent::__construct($options); // ... } public function write($specified type, $required message) { // write to the database. } }
虽然 CakePHP 除了应该执行组合技术之外对日志流没有任何先决条件,但扩展 BaseLog 类有几个优点:
它因此处理投影的程度和类型争用。最后,它执行 config() 技术,预期使阅读的日志记录工作。
每个记录器的撰写技术都应该接受两个边界:$type 和 $message(按特定顺序)。 $type 是记录消息的字符串排序;基本信念是错误、警告、信息和故障排除。此外,您可以在调用 CakeLog::write 时利用它们来表征您的类型。
现在让我们看看如何配置登录 CakePHP,如下所示。
首先,我们需要配置app.php文件;我们可以使用不同的选项配置日志部分。
'Log' => [ 'debug'=>[ 'className'=> 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file'=> 'debug', 'levels' => ['specified notice', 'required info', 'debug'], 'url' => env('Specified URL', null), ], 'error' => [ 'className'=> 'Cake\Log\Engine\FileLog', 'path' => LOGS, 'file'=> 'error', 'levels' => ['specified warning', 'error', 'critical', 'alert'], 'url' => env('Specified URL', null), ], },
说明
在上面的代码中,我们可以看到默认情况下;我们有两个日志级别:我们已经配置的错误和调试,它处理不同级别的消息。所以基本上,CakePHP 支持不同级别的日志记录,如下所示。
现在让我们看看CakePHP中的日志文件如下。
我们可以通过两种不同的方式写入日志记录。
第一个是利用静态 write() 技术。接下来是静态 write() 技术的语言结构。
语法:
write(integer|string $level, blended $message, string|array $context [])
参数:
所撰写消息的严重性级别。值应该是与已知级别匹配的整数或字符串。
要记录的消息内容。
用于记录消息的额外信息。可以传递唯一的扩展密钥以用于对日志电机进行额外的分离。如果传递了一个字符串或一个数学记录,它将被视为度数键。有关日志记录程度的更多数据,请参阅 CakeLogLog::config()。
返回: 布尔值
描述:将给定的消息和类型写入所有设计的日志连接器。排列好的连接器通过 $level 和 $message 因子传递。 $level 是随附的字符串/值之一。第二种是使用 log() 简单的路线工作,任何使用 LogTrait 的人都可以调用 log() 将在内部调用 Log::write()。
Now let’s see an example of a log file as follows.
First, we need to make the changes in the routes.php file as follows.
<?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 message', 'home page']); $builder->connect('logex',['controller'=>'Logexs','action'=>'index']); $builder->fallbacks(); });
Now we need to create controller.php and write the following code as follows.
<?php namespace App\Controller; use App\Controller\AppController; use Cake\Log\Log; class LogexsController extends AppController{ public function index(){ /*First way to write log file.*/ Log::write('debug', "Something went wrong during execution."); /* Second way to write log file.*/ $this->log("Something went wrong during execution.", 'debug'); } } ?>
Create an index.php file under the view directory and write the following code.
Something went wrong during execution. Need to check log file\debug.log
Now we need to execute this file in localhost, and after execution, we will do some output that we illustrated by using the following screenshot.
After execution debug log was added to the debug.log file, as shown in the following screenshot.
We hope from this article you learn more about the CakePHP log. From the above article, we have taken in the essential idea of the CakePHP log and see the representation and example of the CakePHP log. Furthermore, this article taught us how and when to use the CakePHP log.
以上是CakePHP 日志的详细内容。更多信息请关注PHP中文网其他相关文章!