codecamp

CakePHP的日志记录

在CakePHP中记录日志是一件很容易的事,你只需要使用一个方法就可以实现。你可以为任何后台进程(如cronjob)记录错误,异常,用户活动,用户采取的行动。在CakePHP中记录数据很容易-只要使用log()方法,此方法由LogTrait类提供,LogTrait几乎是所有的CakePHP类的祖先类。

日志配置

我们可以在config/app.php文件中配置日志在文件中如下截图部分可以设置配置选项。


默认情况下,你会看到两个日志级别- 错误调试已经配置好了。他们将处理不同级别的消息。

CakePHP支持多种日志记录级别如下 -

  • 紧急情况 -系统不可用

  • 警告 -动作必须立即执行

  • 关键 -关键状况

  • 错误 -错误状况

  • 警告(警报) -警告状况

  • 通知 -普通但有意义的状况

  • 信息 -信息性消息

  • 调试 -调试级消息

写入日志文件

我们有两种方式可以在日志文件中写入日志。

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

语法write( integer|string $level , mixed $message , string|array $context[] )
参数说明$level:严重性级别,值必须是与已知级别相匹配的整形或者字符串;
$message:信息内容;
$context[]:记录消息所用的额外数据,可以传递一个特殊的范围键给要所要用的日志引擎做过滤用。如果传递的是一个字符串或数字索引数组,它将被当作范围键。更多信息请参考Cake\Log\Log::config()
返回结果布尔型
说明写入所给的信息并打印到全部已配置的日志适配器。
适配器传递$level和$message变量。$level是以下字符串/值:


第二种方法是使用log()快捷方法,此方法会在内部调用Log::write()方法,在所有使用LogTrait调用log() 情况下都可用 -

修改config/routes.php文件如下。

config/routes.php文件

<?php
   use CakeCorePlugin;
   use CakeRoutingRouteBuilder;
   use CakeRoutingRouter;

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

src/Controller/目录下创建一个LogexController.php文件。复制以下代码至其中。

src/Controller/LogexController.php

<?php
   namespace AppController;
   use AppControllerAppController;
   use CakeLogLog;

   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目录,并在此Logexs目录下创建一个名为index.ctp视图文件。复制以下代码至其中。

src/Template/Logexs/index.ctp

Something is written in log file. Check log file logsdebug.log

通过访问以下网址执行上面的例子。

http://localhost:85/CakePHP/logex

输出

执行以上程序,您会看到如下页面。



CakePHP的错误和异常处理
CakePHP的表单处理
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

CakePHP Useful Resources

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }