Symfony / Monolog:如何自定义404找不到异常的日志格式

Monolog提供了一种方法exclude 404 errors from the log,但如果我想自定义它们而不是完全压制它们呢?

所以显示不同于:

[2016-12-12 10:41:01] request.ERROR:未捕获的PHP异常Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:“在/ myproject / vendor找不到”GET / non-existing-route“的路由/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php第125行{“exception”:“[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):找不到\的路由在/myproject/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/RouterListener.php:125,“GET / non-existing-route”,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(代码:0) :at /myproject/var/cache/dev/appDevDebugProjectContainerUrlMatcher.php:1181)"} []

回答(2)

2 years ago

可能的解决方案是使用日志处理器 .

详细文档位于How to Add extra Data to Log Messages via a Processor

然后在进程内部或检测 NotFoundHttpException 并将其替换为人类可读的消息 .

2 years ago

假设您正在讨论app / logs目录中的日志生命 . 如果是这样,我会这样做,这是非常直接的 .

注意:您的自定义 Logger 在上面的步骤1中注入控制器 . 在您的情况下,将其注入您的事件监听器 .