【问题标题】:How to log a "route not found"如何记录“找不到路线”
【发布时间】:2020-07-14 22:33:09
【问题描述】:

我在互联网上发现,在 laravel 4 中可以包含此代码来记录 NotFoundHttpException 错误。

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

    Log::error($exception);
});

我正在使用 Laravel 5,但我没有找到插入上述代码的 start/global.php 文件。在拉拉维尔。 5 它不再存在start/global.php 文件,所以我的问题是:我应该在哪里复制此代码以记录NotFoundHttpException Route 错误? 我会使用这段代码,因为通过启动命令php artisan route:list 我收到了一个我找不到的 NotFoundHttpException。

【问题讨论】:

    标签: php laravel error-handling listener


    【解决方案1】:

    在文件app/Exceptions/Handler.php 中有一个名为report() 的方法,该方法将异常作为参数提供。检查异常是否是 NotFoundHttpException 的一个实例,然后您就可以开始了。

    public function report(Throwable $exception)
    {
        if ($exception instanceof NotFoundHttpException) {
            // Do something here.
        }
    
        parent::report($exception);
    }
    

    【讨论】:

    • 我找到了文件 Handler.php 但我认为当我在应用程序中导航时它会注册错误。如果我启动命令 php artisan route:list 它不会在日志上写入错误。我说的对吗?
    • 抱歉。我想我完全误解了你。您可以使用--verbose 标志和route:list 命令来获取完整的错误堆栈:php artisan -v route:list。也许这会对你有所帮助?
    • 是的,它有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2013-12-11
    • 2016-04-04
    • 1970-01-01
    • 2016-09-16
    • 2018-02-24
    相关资源
    最近更新 更多