Я пытаюсь реализовать монолог, чтобы он выводил на консоль Chrome. Пока у меня есть это, но когда я регистрирую сообщение, оно ничего не выводит.
Нужно ли что-то еще сделать, чтобы я пропустил эту работу?
В прошлом в CakePHP или CodeIgniter я вытягивал ChromePHP и выводил на консоль, набирая ChromePhp::log();
, но кажется, что у Laravel есть более чистый способ сделать это, используя Monolog.
AppServiceProvider.php
<?php
namespace TNC\Providers;
use Log;
use Monolog\Handler\ChromePHPHandler;
use Monolog\Formatter\ChromePHPFormatter;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Log::listen(function () {
$monolog = Log::getMonolog();
if (env('APP_ENV') === 'local') {
$monolog->pushHandler($chromeHandler = new ChromePHPHandler());
$chromeHandler->setFormatter(new ChromePHPFormatter());
}
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Route.php
Route::get('/', function () {
Log::info('General information log');
return view('foundation.score');
});
Проблема в переменной среды, потому что это не local
,
Просто авто ошибка или недостаток внимания 🙂
/*
|--------------------------------------------------------------------------
| Custom Monolog Configuration
|--------------------------------------------------------------------------
|
| https://laravel.com/docs/5.2/errors#configuration
|
*/
$app->configureMonologUsing(function($monolog) {
if (app()->environment('local')) {
$monolog->pushHandler($chromeHandler = new Monolog\Handler\ChromePHPHandler());
$chromeHandler->setFormatter(new Monolog\Formatter\ChromePHPFormatter);
}
});
// ...
return $app;
Route::get('/', function () {
Log::info('General information log');
return view('welcome');
});