找不到类日志 [英] Class 'Log' not found

查看:0
本文介绍了找不到类日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Lumen和Laravel的新手,但我必须使用Lumen编写REST API。我设置了一个控制器,但我在使用记录器时遇到了问题。 我遵循了文档:Lumen docs

这是我的控制器应用程序/http/Controlters/DocumentsController.php:

namespace AppHttpControllers;

use IlluminateHttpRequest;
use Log;

class DocumentsController extends Controller
{
    public function index()
    {
        Log::info('test');
        return response()->json(['result' => 'Oh hey!']);
    }
}

如果我运行此命令,则会收到错误消息:

DocumentsController.php第22行中的FatalError异常:找不到类‘Log’

因此,Log外观似乎有问题(还不太确定这些外观在Laravel/Lumen中是如何工作的)。

但如果我更改Log::Info()调用,以手动将日志服务从DI容器中拉出,则它可以工作:

    $app = app();
    $app->make('log')->info('test');

关于官方文档中描述的Facade方法为什么不起作用,有什么想法吗?

推荐答案

Doh,当然,在张贴这个问题5分钟后,我想出了答案。我注意到应用程序基类(vendor/laravel/lumen-framework/src/Application.php)中有以下别名:

public function withFacades()
{
    Facade::setFacadeApplication($this);

    if (! static::$aliasesRegistered) {
        static::$aliasesRegistered = true;

        class_alias('IlluminateSupportFacadesAuth', 'Auth');
        class_alias('IlluminateSupportFacadesCache', 'Cache');
        class_alias('IlluminateSupportFacadesDB', 'DB');
        class_alias('IlluminateSupportFacadesEvent', 'Event');
        class_alias('IlluminateSupportFacadesGate', 'Gate');
        class_alias('IlluminateSupportFacadesLog', 'Log');
        class_alias('IlluminateSupportFacadesQueue', 'Queue');
        class_alias('IlluminateSupportFacadesSchema', 'Schema');
        class_alias('IlluminateSupportFacadesURL', 'URL');
        class_alias('IlluminateSupportFacadesValidator', 'Validator');
    }
}

但是,从未调用过此方法,因为在bootstrap/app.php中,$This->with Facades()调用默认情况下被注释掉。

我取消了它的注释,现在它起作用了。

这篇关于找不到类日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆