【问题标题】:Laravel Error In Log Multiple Times A DayLaravel 每天多次记录日志错误
【发布时间】:2015-07-09 18:03:14
【问题描述】:

这是错误:

[2015-07-01 00:12:19] production.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php:148
Stack trace:
#0 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1054): Illuminate\Routing\RouteCollection->match(Object(Illuminate\Http\Request))
#1 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1022): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1001): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#3 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(775): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#4 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(745): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#5 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware.php(72): Illuminate\Foundation\Application->handle(Object(Illuminate\Http\Request), 1, true)
#6 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Cookie/Queue.php(47): Illuminate\Session\Middleware->handle(Object(Illuminate\Http\Request), 1, true)
#7 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Cookie/Guard.php(51): Illuminate\Cookie\Queue->handle(Object(Illuminate\Http\Request), 1, true)
#8 /var/www/vhosts/mywebsite.com/laravel/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Illuminate\Cookie\Guard->handle(Object(Illuminate\Http\Request), 1, true)
#9 /var/www/vhosts/mywebsite.com/laravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(641): Stack\StackedHttpKernel->handle(Object(Illuminate\Http\Request))
#10 /var/www/vhosts/mywebsite.com/httpdocs/index.php(49): Illuminate\Foundation\Application->run()
#11 {main} [] []

我完全不知道这个错误是从哪里来的,我已经厌倦了加载我的日志。

【问题讨论】:

  • 你不能在你的代码中添加一些行来记录试图访问的页面。也许这可以为您提供有关可能发生的事情的线索。
  • 看起来这可能是由任何人访问您网站上的 404 页面引起的。您的 httpd.conf/other 中是否设置了 DocumentError 404 page.html
  • 通过导航到应用程序上的所有路由来手动测试它们(最好在非生产环境中执行此操作)。当您遇到返回 404 错误的消息时,您就知道此消息来自何处。
  • 有没有办法让日志告诉我路线是什么?似乎是显而易见的事情......
  • 是和不是。您可以使用(我认为)Log::error() 指定何时写入日志,并且可以手动写入当前 url,但是您在上面看到的条目是当您导航到返回 404 错误的 url 时显示的内容。如果"debug" => true 你会在屏幕上看到它,它会被记录到你的错误日志中。如果"debug" => false,您不会在屏幕上看到此错误,它只会被记录。

标签: php laravel laravel-4 error-logging


【解决方案1】:

您可以添加一个异常处理程序,检查异常是否是Symfony\Component\HttpKernel\Exception\NotFoundHttpException 的实例,如果是,记录请求路径,以便您知道是哪个路由被命中。

App::error(function(Exception $exception, $code) {
    if ($exception instanceof Symfony\Component\HttpKernel\Exception\NotFoundHttpException) {
        Log::error('Invalid Route', ['route' => Request::path()]);
    }
});

我把这个放在app/start/global.php

然后下次发生这种情况时,请检查laravel.log 中的Invalid Route 字样,它应该会让您了解正在发生的事情。请记住,执行此操作的甚至可能不是您的用户。我在生产中做过类似的事情,并且通常每天都会遇到一些这样的错误,因为机器人只是随机点击寻找要访问的东西。

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2018-10-24
    相关资源
    最近更新 更多