From 8f0f9fa1190a36f91eb07ccde62065da566389ba Mon Sep 17 00:00:00 2001 From: Damian Mooyman Date: Fri, 10 Mar 2017 11:18:24 +1300 Subject: [PATCH] API Apply logging to config cache --- src/Core/Config/CoreConfigFactory.php | 34 ++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/Core/Config/CoreConfigFactory.php b/src/Core/Config/CoreConfigFactory.php index 6de630251..53bf55dd9 100644 --- a/src/Core/Config/CoreConfigFactory.php +++ b/src/Core/Config/CoreConfigFactory.php @@ -2,6 +2,10 @@ namespace SilverStripe\Core\Config; +use Monolog\Handler\ErrorLogHandler; +use Monolog\Handler\StreamHandler; +use Monolog\Logger; +use Psr\Log\LoggerInterface; use SilverStripe\Config\Collections\CachedConfigCollection; use SilverStripe\Config\Collections\MemoryConfigCollection; use SilverStripe\Config\Transformer\PrivateStaticTransformer; @@ -48,7 +52,7 @@ class CoreConfigFactory $instance = new CachedConfigCollection(); // Set root cache - $instance->setPool(new FilesystemAdapter('configcache', 0, getTempFolder())); + $instance->setPool($this->createPool()); $instance->setFlush($flush); // Set collection creator @@ -168,4 +172,32 @@ class CoreConfigFactory return ModuleLoader::instance()->getManifest()->moduleExists($module); }); } + + /** + * @todo Refactor bootstrapping of manifest caching into app object + * @return FilesystemAdapter + */ + protected function createPool() + { + $cache = new FilesystemAdapter('configcache', 0, getTempFolder()); + $cache->setLogger($this->createLogger()); + return $cache; + } + + /** + * Create default error logger + * + * @todo Refactor bootstrapping of manifest logging into app object + * @return LoggerInterface + */ + protected function createLogger() + { + $logger = new Logger("configcache-log"); + if (Director::isDev()) { + $logger->pushHandler(new StreamHandler('php://output')); + } else { + $logger->pushHandler(new ErrorLogHandler()); + } + return $logger; + } }