Laravel Lumen Logging 给出 A facade root has not been set
Laravel Lumen Logging gives A facade root has not been set
我已经用 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');
我想将日志记录添加到 stdout(这样我以后可以将该数据通过管道传输到 AWS ElasticBeanstalk 中的 Cloudwatch),据我所知,这是开箱即用的,但我似乎做不到让它工作。
每当我在控制器中执行 Log::info('message');
时,我都会得到一个 A facade root has not been set.
.
没有 Log::info('message');
一切都按预期工作。
您应该确保取消注释 bootstrap/app.php
文件中的 $app->withFacades()
行。该方法在Facadeclass上静态设置了应用容器,这样每个facade都可以使用容器来解析它的'root'(facade静态代理是干什么用的)
我已经用 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');
我想将日志记录添加到 stdout(这样我以后可以将该数据通过管道传输到 AWS ElasticBeanstalk 中的 Cloudwatch),据我所知,这是开箱即用的,但我似乎做不到让它工作。
每当我在控制器中执行 Log::info('message');
时,我都会得到一个 A facade root has not been set.
.
没有 Log::info('message');
一切都按预期工作。
您应该确保取消注释 bootstrap/app.php
文件中的 $app->withFacades()
行。该方法在Facadeclass上静态设置了应用容器,这样每个facade都可以使用容器来解析它的'root'(facade静态代理是干什么用的)