如何在 Codeigniter 4 中记录每个 GET 和 POST 数据?
How to log every GET And POST data in Codeigniter 4?
我的 Web 应用程序正在对我们的 CodeIgniter 4 后端进行大量 AJAX 调用(GET 和 POST)。我目前调试 AJAX 调用的方法是在每个方法中设置手动记录消息。太费时间了。
你知道是否有更好的方法吗?覆盖 CI class?
我很高兴得到每一个帮助。
为了记录请求,您必须创建“后过滤器”。
首先定义实现 FilterInterface 的 Class。
class Logger implements FilterInterface
{
use ResponseTrait;
public function before(RequestInterface $request)
{
...
}
public function after(RequestInterface $request, ResponseInterface $response)
{
...
}
}
在 after 方法中,您需要存储响应,然后使用 log_message 进行保存。
public function after(RequestInterface $request, ResponseInterface $response)
{
$response_service = \Config\Services::response();
log_message('info', '{message}', ['message' => $response_service->getJSON()]
}
在这里,我存储了显式使用的响应服务,然后简单地调用了 getJSON 来存储请求的 JSON 主体。您需要针对您的问题修改它。另外,请注意您不需要显式调用响应服务。还有另一个线程显示了如何隐式保存响应,因此您可能需要参考它。
过滤完成后,您需要为路由注册别名,如下所示:
public $aliases = ['logger' => \App\Filters\Logger::class];
完成后,您可以在单个路由或全局路由上实施。
以下是如何在全局路由上实现它:
public $globals = [
'before' => [
...
],
'after' => [
'logger',
],
];
参考资料:https://codeigniter4.github.io/userguide/incoming/filters.html?highlight=filter
https://codeigniter4.github.io/userguide/incoming/request.html?highlight=request
https://codeigniter4.github.io/userguide/general/logging.html?highlight=log_message
只需使用
echo $this->request->getPost("usersemail");死();
对于用户电子邮件输入字段
我的 Web 应用程序正在对我们的 CodeIgniter 4 后端进行大量 AJAX 调用(GET 和 POST)。我目前调试 AJAX 调用的方法是在每个方法中设置手动记录消息。太费时间了。
你知道是否有更好的方法吗?覆盖 CI class?
我很高兴得到每一个帮助。
为了记录请求,您必须创建“后过滤器”。
首先定义实现 FilterInterface 的 Class。
class Logger implements FilterInterface
{
use ResponseTrait;
public function before(RequestInterface $request)
{
...
}
public function after(RequestInterface $request, ResponseInterface $response)
{
...
}
}
在 after 方法中,您需要存储响应,然后使用 log_message 进行保存。
public function after(RequestInterface $request, ResponseInterface $response)
{
$response_service = \Config\Services::response();
log_message('info', '{message}', ['message' => $response_service->getJSON()]
}
在这里,我存储了显式使用的响应服务,然后简单地调用了 getJSON 来存储请求的 JSON 主体。您需要针对您的问题修改它。另外,请注意您不需要显式调用响应服务。还有另一个线程显示了如何隐式保存响应,因此您可能需要参考它。
过滤完成后,您需要为路由注册别名,如下所示:
public $aliases = ['logger' => \App\Filters\Logger::class];
完成后,您可以在单个路由或全局路由上实施。 以下是如何在全局路由上实现它:
public $globals = [
'before' => [
...
],
'after' => [
'logger',
],
];
参考资料:https://codeigniter4.github.io/userguide/incoming/filters.html?highlight=filter
https://codeigniter4.github.io/userguide/incoming/request.html?highlight=request
https://codeigniter4.github.io/userguide/general/logging.html?highlight=log_message
只需使用 echo $this->request->getPost("usersemail");死(); 对于用户电子邮件输入字段