【问题标题】:Laravel Lumen Logging gives A facade root has not been setLaravel Lumen Logging 给出了一个外观根尚未设置
【发布时间】:2021-09-20 13:00:28
【问题描述】:

我已经用composer create-project --prefer-dist laravel/lumen demo 设置了 Laravel 流明的基本示例。我使用的是 Lumen 版本 8。

我的 .env 文件看起来像

APP_NAME=Lumen
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
APP_TIMEZONE=UTC

LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=mysql
DB_USERNAME=root
DB_PASSWORD=

CACHE_DRIVER=file
QUEUE_CONNECTION=sync

我创建了一个控制器TrackerController 并在routes/web.php 中调用它。

// /app/Http/Controllers/TrackerController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;

class TrackerController extends Controller {
    public function index(Request $request) {
        Log::info('message');
        return 'ok';
    }
}

我的/app/routes/web.php 看起来像

<?php

$router->get('/','TrackerController@index');

我想将日志记录添加到标准输出(以便以后可以将该数据通过管道传输到 AWS ElasticBeanstalk 中的 Cloudwatch),据我了解,这是开箱即用的,但我似乎无法获得它可以工作。

每当我在控制器中执行Log::info('message'); 时,我都会得到A facade root has not been set.

没有Log::info('message');,一切都按预期工作。

【问题讨论】:

  • 您是否取消了bootstrap/app.php 文件中$app-&gt;withFacades() 的注释?
  • 确实做到了!

标签: php laravel lumen


【解决方案1】:

您应该确保取消注释 bootstrap/app.php 文件中的 $app-&gt;withFacades() 行。此方法在 Facade 类上静态设置应用程序容器,以便每个外观都可以使用容器来解析其“根”(外观是静态代理的对象)。

【讨论】:

    猜你喜欢
    • 2020-05-18
    • 2020-03-23
    • 1970-01-01
    • 2018-03-09
    • 2020-09-10
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多