Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP如何全局记录API请求?_Cakephp_Logging_Global - Fatal编程技术网

CakePHP如何全局记录API请求?

CakePHP如何全局记录API请求?,cakephp,logging,global,Cakephp,Logging,Global,我有一个基于CakePHP的API,名为AccessLogController的控制器负责将access日志保存到数据库中 问题是: 在CakePHP中全局登录的最佳实践是什么 我想我将在过滤器回调之前从继承的AppController调用AccessLogController方法,如下所示: public function beforeFilter() { $accessLogCtrl = new AccessLogsController(); $access

我有一个基于CakePHP的API,名为AccessLogController的控制器负责将access日志保存到数据库中

问题是:

在CakePHP中全局登录的最佳实践是什么

我想我将在过滤器回调之前从继承的AppController调用AccessLogController方法,如下所示:

 public function beforeFilter() {
        $accessLogCtrl = new AccessLogsController();
        $accessLogCtrl->add($param1, $param2);
    }
但我不确定这是不是一个好方法


非常感谢您的建议。

这不是您应该使用控制器的方式,永远不要,除非是在您的测试套件中

也就是说,使用
AppController::beforeFilter()
全局记录控制器操作请求通常是可以的,只要确保在覆盖扩展控制器中的筛选器时始终调用
parent::beforeFilter()


但是,您必须将日志功能重构为实用程序类、组件、模型,甚至直接重构为
AppController
,这取决于它实际的日志记录方式,如果您需要在
AppController

以外的地方使用它,请提供一些示例代码,如何在对API的每个请求中使用它?@redrom我对您的应用程序的内部结构一无所知,那么除了您已经在这里显示的代码之外,您希望我如何编写其他代码,即
beforeFilter()
回调?