diff --git a/CHANGELOG.md b/CHANGELOG.md index f441b2000..06bd2fcef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ -# v1.6.0-dev +# v1.6.0-beta.1 +## mm/dd/2018 + +1. [](#improved) + * Added support for syslog and syslog facility logging (default: 'file') + +# v1.6.0-beta.1 ## 10/01/2018 1. [](#new) diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index 936edd562..85d4cebbb 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -59,6 +59,7 @@ class Grav extends Container 'inflector' => 'Grav\Common\Inflector', 'siteSetupProcessor' => 'Grav\Common\Processors\SiteSetupProcessor', 'configurationProcessor' => 'Grav\Common\Processors\ConfigurationProcessor', + 'loggerProcessor' => 'Grav\Common\Processors\LoggerProcessor', 'errorsProcessor' => 'Grav\Common\Processors\ErrorsProcessor', 'debuggerInitProcessor' => 'Grav\Common\Processors\DebuggerInitProcessor', 'initializeProcessor' => 'Grav\Common\Processors\InitializeProcessor', @@ -80,6 +81,7 @@ class Grav extends Container protected $processors = [ 'siteSetupProcessor', 'configurationProcessor', + 'loggerProcessor', 'errorsProcessor', 'debuggerInitProcessor', 'initializeProcessor', diff --git a/system/src/Grav/Common/Processors/LoggerProcessor.php b/system/src/Grav/Common/Processors/LoggerProcessor.php new file mode 100644 index 000000000..ac27d4007 --- /dev/null +++ b/system/src/Grav/Common/Processors/LoggerProcessor.php @@ -0,0 +1,44 @@ +container; + /** @var Config $config */ + $config = $grav['config']; + $log = $grav['log']; + $handler = $config->get('system.log.handler', 'file'); + + + switch ($handler) { + case 'syslog': + $log->popHandler(); + + $facility = $config->get('system.log.syslog.facility', 'local6'); + $logHandler = new SyslogHandler('grav', $facility); + $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); + $logHandler->setFormatter($formatter); + + $log->pushHandler($logHandler); + break; + } + + return $log; + } +} diff --git a/system/src/Grav/Common/Service/LoggerServiceProvider.php b/system/src/Grav/Common/Service/LoggerServiceProvider.php index cd4192b5c..1cb11a3bc 100644 --- a/system/src/Grav/Common/Service/LoggerServiceProvider.php +++ b/system/src/Grav/Common/Service/LoggerServiceProvider.php @@ -8,12 +8,10 @@ namespace Grav\Common\Service; -use Monolog\Formatter\LineFormatter; -use Monolog\Handler\SyslogHandler; +use Monolog\Handler\StreamHandler; +use Monolog\Logger; use Pimple\Container; use Pimple\ServiceProviderInterface; -use \Monolog\Logger; -use \Monolog\Handler\StreamHandler; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; class LoggerServiceProvider implements ServiceProviderInterface @@ -21,29 +19,13 @@ class LoggerServiceProvider implements ServiceProviderInterface public function register(Container $container) { $container['log'] = function ($c) { - /** @var Config $config */ - $config = $c['config']; - $handler = $config->get('system.log.handler', 'file'); - $log = new Logger('grav'); /** @var UniformResourceLocator $locator */ $locator = $c['locator']; - switch ($handler) { - case 'syslog': - $facility = $config->get('system.log.syslog.facility', 'local6'); - $logHandler = new SyslogHandler('grav', $facility); - $formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%"); - $logHandler->setFormatter($formatter); - break; - case 'file': - default: - $log_file = $locator->findResource('log://grav.log', true, true); - $logHandler = new StreamHandler($log_file, Logger::DEBUG); - } - - $log->pushHandler($logHandler); + $log_file = $locator->findResource('log://grav.log', true, true); + $log->pushHandler(new StreamHandler($log_file, Logger::DEBUG)); return $log; };