Added support for syslog and syslog facility logging (default: 'file')

This commit is contained in:
Djamil Legato
2018-10-02 12:36:34 -07:00
parent 70c423563f
commit 78992df894
4 changed files with 57 additions and 23 deletions

View File

@@ -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)

View File

@@ -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',

View File

@@ -0,0 +1,44 @@
<?php
/**
* @package Grav.Common.Processors
*
* @copyright Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Processors;
use Grav\Common\Config\Config;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\SyslogHandler;
class LoggerProcessor extends ProcessorBase implements ProcessorInterface
{
public $id = '_logger';
public $title = 'Logger';
public function process()
{
$grav = $this->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;
}
}

View File

@@ -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;
};