diff --git a/src/Factory/LoggerFactory.php b/src/Factory/LoggerFactory.php index 863b30e57..3658d33a5 100644 --- a/src/Factory/LoggerFactory.php +++ b/src/Factory/LoggerFactory.php @@ -8,6 +8,7 @@ use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Util\Logger\FriendicaDevelopHandler; use Friendica\Util\Logger\Introspection; use Friendica\Util\Logger\SyslogLogger; +use Friendica\Util\Logger\VoidLogger; use Friendica\Util\Logger\WorkerLogger; use Friendica\Util\Profiler; use Monolog; @@ -42,6 +43,10 @@ class LoggerFactory */ public static function create($channel, Configuration $config) { + if (empty($config->get('system', 'debugging', false))) { + return new VoidLogger(); + } + $introspector = new Introspection(LogLevel::DEBUG, self::$ignoreClassList); switch ($config->get('system', 'logger_adapter', 'monolog')) { case 'syslog': @@ -60,16 +65,11 @@ class LoggerFactory $logger->pushProcessor(new Monolog\Processor\UidProcessor()); $logger->pushProcessor($introspector); - $debugging = $config->get('system', 'debugging'); - $stream = $config->get('system', 'logfile'); - $level = $config->get('system', 'loglevel'); + $stream = $config->get('system', 'logfile'); + $level = $config->get('system', 'loglevel'); - if ($debugging) { - $loglevel = self::mapLegacyConfigDebugLevel((string)$level); - static::addStreamHandler($logger, $stream, $loglevel); - } else { - static::addVoidHandler($logger); - } + $loglevel = self::mapLegacyConfigDebugLevel((string)$level); + static::addStreamHandler($logger, $stream, $loglevel); break; } diff --git a/src/Util/Logger/VoidLogger.php b/src/Util/Logger/VoidLogger.php new file mode 100644 index 000000000..16cd10da0 --- /dev/null +++ b/src/Util/Logger/VoidLogger.php @@ -0,0 +1,140 @@ +<?php + +namespace Friendica\Util\Logger; + +use Psr\Log\LoggerInterface; + +/** + * A Logger instance to not log + */ +class VoidLogger implements LoggerInterface +{ + /** + * System is unusable. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function emergency($message, array $context = array()) + { + return; + } + + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function alert($message, array $context = array()) + { + return; + } + + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function critical($message, array $context = array()) + { + return; + } + + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function error($message, array $context = array()) + { + return; + } + + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function warning($message, array $context = array()) + { + return; + } + + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function notice($message, array $context = array()) + { + return; + } + + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function info($message, array $context = array()) + { + return; + } + + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * + * @return void + */ + public function debug($message, array $context = array()) + { + return; + } + + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * + * @return void + */ + public function log($level, $message, array $context = array()) + { + return; + } +}