From 919f21b3fddf47a25ef85167817a8827f59b271f Mon Sep 17 00:00:00 2001 From: Gary Green Date: Thu, 15 Sep 2016 22:02:51 +0100 Subject: [PATCH] Add log service provider, defers loading of logger. --- src/Illuminate/Foundation/Application.php | 3 ++ src/Illuminate/Foundation/Console/Kernel.php | 1 - .../Foundation/Console/Optimize/config.php | 14 +----- src/Illuminate/Foundation/Http/Kernel.php | 1 - .../LogServiceProvider.php} | 44 +++++++++---------- 5 files changed, 25 insertions(+), 38 deletions(-) rename src/Illuminate/{Foundation/Bootstrap/ConfigureLogging.php => Log/LogServiceProvider.php} (76%) diff --git a/src/Illuminate/Foundation/Application.php b/src/Illuminate/Foundation/Application.php index 374ffbd347ed..f0e6cc746ed7 100755 --- a/src/Illuminate/Foundation/Application.php +++ b/src/Illuminate/Foundation/Application.php @@ -9,6 +9,7 @@ use Illuminate\Http\Request; use Illuminate\Container\Container; use Illuminate\Filesystem\Filesystem; +use Illuminate\Log\LogServiceProvider; use Illuminate\Support\ServiceProvider; use Illuminate\Events\EventServiceProvider; use Illuminate\Routing\RoutingServiceProvider; @@ -185,6 +186,8 @@ protected function registerBaseServiceProviders() $this->register(new EventServiceProvider($this)); $this->register(new RoutingServiceProvider($this)); + + $this->register(new LogServiceProvider($this)); } /** diff --git a/src/Illuminate/Foundation/Console/Kernel.php b/src/Illuminate/Foundation/Console/Kernel.php index ce7d0425292d..848c3a427f0b 100644 --- a/src/Illuminate/Foundation/Console/Kernel.php +++ b/src/Illuminate/Foundation/Console/Kernel.php @@ -58,7 +58,6 @@ class Kernel implements KernelContract protected $bootstrappers = [ 'Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', - 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\SetRequestForConsole', diff --git a/src/Illuminate/Foundation/Console/Optimize/config.php b/src/Illuminate/Foundation/Console/Optimize/config.php index fe8876560e6f..385d1f095bb1 100644 --- a/src/Illuminate/Foundation/Console/Optimize/config.php +++ b/src/Illuminate/Foundation/Console/Optimize/config.php @@ -44,7 +44,6 @@ $basePath.'/vendor/symfony/http-kernel/TerminableInterface.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/Application.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/EnvironmentDetector.php', - $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterFacades.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/RegisterProviders.php', @@ -73,6 +72,7 @@ $basePath.'/vendor/symfony/http-foundation/AcceptHeaderItem.php', $basePath.'/vendor/symfony/http-foundation/AcceptHeader.php', $basePath.'/vendor/symfony/debug/ExceptionHandler.php', + $basePath.'/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Support/AggregateServiceProvider.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php', @@ -144,19 +144,7 @@ $basePath.'/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php', - $basePath.'/vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php', - $basePath.'/vendor/laravel/framework/src/Illuminate/Log/Writer.php', $basePath.'/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Logger.php', - $basePath.'/vendor/psr/log/Psr/Log/LoggerInterface.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Handler/HandlerInterface.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Formatter/FormatterInterface.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php', - $basePath.'/vendor/monolog/monolog/src/Monolog/Formatter/LineFormatter.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Support/Facades/App.php', $basePath.'/vendor/laravel/framework/src/Illuminate/Support/Facades/Route.php', $basePath.'/vendor/laravel/framework/src/Illuminate/View/Engines/EngineResolver.php', diff --git a/src/Illuminate/Foundation/Http/Kernel.php b/src/Illuminate/Foundation/Http/Kernel.php index 2cccc5552c5e..cef0bf3928f8 100644 --- a/src/Illuminate/Foundation/Http/Kernel.php +++ b/src/Illuminate/Foundation/Http/Kernel.php @@ -36,7 +36,6 @@ class Kernel implements KernelContract protected $bootstrappers = [ 'Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', - 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', diff --git a/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php b/src/Illuminate/Log/LogServiceProvider.php similarity index 76% rename from src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php rename to src/Illuminate/Log/LogServiceProvider.php index c2c708e6d3de..315c0839b666 100644 --- a/src/Illuminate/Foundation/Bootstrap/ConfigureLogging.php +++ b/src/Illuminate/Log/LogServiceProvider.php @@ -1,47 +1,45 @@ registerLogger($app); - - // If a custom Monolog configurator has been registered for the application - // we will call that, passing Monolog along. Otherwise, we will grab the - // the configurations for the log system and use it for configuration. - if ($app->hasMonologConfigurator()) { - call_user_func( - $app->getMonologConfigurator(), $log->getMonolog() - ); - } else { - $this->configureHandlers($app, $log); - } + $this->app->singleton('log', function ($app) { + return $this->createLogger($app); + }); } /** - * Register the logger instance in the container. + * Create the logger. * - * @param \Illuminate\Contracts\Foundation\Application $app + * @param \Illuminate\Contracts\Foundation\Application $app * @return \Illuminate\Log\Writer */ - protected function registerLogger(Application $app) + public function createLogger($app) { - $app->instance('log', $log = new Writer( - new Monolog($app->environment()), $app['events']) + $log = new Writer( + new Monolog($app->environment()), $app['events'] ); + if ($app->hasMonologConfigurator()) { + call_user_func( + $app->getMonologConfigurator(), $log->getMonolog() + ); + } else { + $this->configureHandlers($app, $log); + } + return $log; }