我使用的是Symfony 4,但我希望2和3都差不多。
快速独白处理程序的生产模式错误报告返回GET请求的完整请求URL,因此在开发过程中重现错误相当容易。
但是,如果这是POST请求,那么您会遇到麻烦,因为没有提供POST值。
我对错误处理和日志记录组件有所了解,但是没有立即发现的。
还有其他人遇到此问题并找到解决方案吗?
最佳答案
根据@Puya Sarmidani的评论,这就是我最后所做的:
config/services.yaml:
App\Services\MonologExtraProcessor:
tags:
- { name: monolog.processor }
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
src/Services/MonologExtraProcessor.php:
namespace App\Services;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class MonologExtraProcessor
{
private $postParams = null;
public function __invoke(array $record)
{
if ($this->postParams !== null) {
$record['extra']['postParams'] = $this->postParams;
}
return $record;
}
public function onKernelRequest(GetResponseEvent $event)
{
$postParams = $event->getRequest()->request->all();
$this->postParams = empty($postParams) ? null : serialize($postParams);
}
}