laravel-4: Come trovare il percorso per NotFoundHttpException?

Ho trovato un NotFoundHttpException nei registri. Assomiglia a questo:

[2013-11-26 13:49:20] log.ERROR: exception 'Symfony\Component\HttpKernel\Exception\NotFoundHttpException' in /var/www/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php:1429
Stack trace:
#0 /var/www/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1050): Illuminate\Routing\Router->handleRoutingException(Object(Symfony\Component\Routing\Exception\ResourceNotFoundException))
#1 /var/www/myproject/vendor/laravel/framework/src/Illuminate/Routing/Router.php(1014): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#2 /var/www/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(530): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#3 /var/www/myproject/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(506): Illuminate\Foundation\Application->dispatch(Object(Illuminate\Http\Request))
#4 /var/www/myproject/public/index.php(49): Illuminate\Foundation\Application->run()
#5 {main} [] []

Questo si dice nulla ed è solo uno spreco di spazio su disco.

Come posso trovare l’URI che sta provocando un NotFoundHttpException?

 

2 Replies
  1. 37

    in app/start/global.php estendere App::error():

    App::error(function(Exception $exception, $code)
    {
        if ($exception instanceof \Symfony\Component\HttpKernel\Exception\NotFoundHttpException)
        {
            Log::error('NotFoundHttpException Route: ' . Request::url() );
        }
    
        Log::error($exception);
    });

    Ora si ottiene un aggiuntivo voce di registro con URL:

     [2013-11-26 14:20:07] log.ERROR: NotFoundHttpException Route: http://myproject.net/asdfgsdfghsdfg [] []
    • Bello trovare. Si potrebbe spiegare il motivo per cui deve essere nel namespace?
    • Fondamentalmente, dato che è il nome dell’oggetto. Se si guarda get_name($exception) ha questo spazio dei nomi e instanceof al confronto con questo nome.
    • mi hai salvato!! Questo mi faceva impazzire.
  2. 1

    È possibile filtrare 404 (NotFoundHttpException) errore di forma il tuo file di log.

    Percorso del File : app/start/global.php

    App::error(function(Exception $exception, $errorCode)
    {
        $requestUrl = Request::fullUrl(); 
        $userAgent = Request::header('user-agent');
    
        if($errorCode != 404){
            Log::error('Exception', array(
                'errorCode' => $errorCode,
                'requestUrl' => $requestUrl,
                'userAgent' => $userAgent,
                'context' => $exception,
            ));     
        }
    
        return Response::view('error-page-path.error-404', array(), 404);
        //Here "error-404" is a blade view file in "error-page-path" directory
    });

Lascia un commento