Laravel 不断记录 NotFoundHttpException
Posted
技术标签:
【中文标题】Laravel 不断记录 NotFoundHttpException【英文标题】:Laravel Constantly logging NotFoundHttpException 【发布时间】:2017-08-26 14:50:21 【问题描述】:我的 laravel 日志充满了NotFoundHttpException in /forge/default/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php:161
,每分钟记录大约十个这样的异常。
这使得在日志文件中找到任何有用的东西真的很困难,而且文件本身很快就会变大。
这是来自试图抓取网站的机器人还是可能是另一个问题?该日志不包含正在访问的 URL,因此很难判断它是否是 404 问题。
谢谢
【问题讨论】:
生产现场?尝试访问你的 nginx/apache 日志也看看他们有什么 也尝试将类似的东西发送到您的RouteServiceProvider
并在名为map
的方法中输入Log::alert('url and method', [ 'url' => $this->app['request']->path(), 'method' => $this->app['request']->method(), 'referer' => $this->app['request']->headers->get('referer') ]);
这样您就可以获得每个请求的URL、方法和引荐来源网址
也去你的App\Exceptions\Handler
覆盖report
方法作为它的父,而不是$logger->error($e);
把$logger->error($e,[ 'url' => $this->app['request']->path(), 'method' => $this->app['request']->method(), 'referer' => $this->app['request']->headers->get('referer') ]);
第二种方式更好,因为您只会在日志中看到那些有错误的请求
感谢您的帮助。我检查了我的访问日志,并且有一个页面正在尝试加载的图标(不存在)。不存在的图像/图标会导致记录异常吗?感谢您提供错误记录提示,我会将其添加到处理程序中。
【参考方案1】:
NotFoundHttpException
表示 Laravel 无法找到请求的路由。
您需要检查路由的语法,如 documentation 中所述,当您尝试访问的路由不存在或您在 routes.php 或浏览器的地址栏中拼写错误时,就会发生错误.
【讨论】:
以上是关于Laravel 不断记录 NotFoundHttpException的主要内容,如果未能解决你的问题,请参考以下文章
127.0.0.1:8000 在 laravel 项目中不断加载