From: Philipp Holzer Date: Mon, 4 Mar 2019 07:42:08 +0000 (+0100) Subject: Rename & Testfix X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=eec4ee3feda717b751422aff3939089d5d562f7f;p=friendica.git Rename & Testfix --- diff --git a/src/Factory/LoggerFactory.php b/src/Factory/LoggerFactory.php index 0ab4c2ac20..32a338fb0b 100644 --- a/src/Factory/LoggerFactory.php +++ b/src/Factory/LoggerFactory.php @@ -6,8 +6,8 @@ use Friendica\Core\Config\Configuration; use Friendica\Core\Logger; use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Util\Introspection; -use Friendica\Util\Logger\Monolog\FriendicaDevelopHandler; -use Friendica\Util\Logger\Monolog\FriendicaIntrospectionProcessor; +use Friendica\Util\Logger\Monolog\DevelopHandler; +use Friendica\Util\Logger\Monolog\IntrospectionProcessor; use Friendica\Util\Logger\ProfilerLogger; use Friendica\Util\Logger\StreamLogger; use Friendica\Util\Logger\SyslogLogger; @@ -67,7 +67,7 @@ class LoggerFactory $logger->pushProcessor(new Monolog\Processor\PsrLogMessageProcessor()); $logger->pushProcessor(new Monolog\Processor\ProcessIdProcessor()); $logger->pushProcessor(new Monolog\Processor\UidProcessor()); - $logger->pushProcessor(new FriendicaIntrospectionProcessor($introspection, LogLevel::DEBUG)); + $logger->pushProcessor(new IntrospectionProcessor($introspection, LogLevel::DEBUG)); $stream = $config->get('system', 'logfile'); @@ -139,9 +139,9 @@ class LoggerFactory $logger->pushProcessor(new Monolog\Processor\PsrLogMessageProcessor()); $logger->pushProcessor(new Monolog\Processor\ProcessIdProcessor()); $logger->pushProcessor(new Monolog\Processor\UidProcessor()); - $logger->pushProcessor(new FriendicaIntrospectionProcessor($introspection, LogLevel::DEBUG)); + $logger->pushProcessor(new IntrospectionProcessor($introspection, LogLevel::DEBUG)); - $logger->pushHandler(new FriendicaDevelopHandler($developerIp)); + $logger->pushHandler(new DevelopHandler($developerIp)); static::addStreamHandler($logger, $stream, LogLevel::DEBUG); break; diff --git a/src/Util/Logger/AbstractFriendicaLogger.php b/src/Util/Logger/AbstractFriendicaLogger.php deleted file mode 100644 index 82f2f56c53..0000000000 --- a/src/Util/Logger/AbstractFriendicaLogger.php +++ /dev/null @@ -1,158 +0,0 @@ -channel = $channel; - $this->introspection = $introspection; - $this->logUid = Strings::getRandomHex(6); - } - - /** - * Simple interpolation of PSR-3 compliant replacements ( variables between '{' and '}' ) - * @see https://www.php-fig.org/psr/psr-3/#12-message - * - * @param string $message - * @param array $context - * - * @return string the interpolated message - */ - protected function psrInterpolate($message, array $context = array()) - { - $replace = []; - foreach ($context as $key => $value) { - // check that the value can be casted to string - if (!is_array($value) && (!is_object($value) || method_exists($value, '__toString'))) { - $replace['{' . $key . '}'] = $value; - } elseif (is_array($value)) { - $replace['{' . $key . '}'] = @json_encode($value); - } - } - - return strtr($message, $replace); - } - - /** - * {@inheritdoc} - */ - public function emergency($message, array $context = array()) - { - $this->addEntry(LogLevel::EMERGENCY, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function alert($message, array $context = array()) - { - $this->addEntry(LogLevel::ALERT, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function critical($message, array $context = array()) - { - $this->addEntry(LogLevel::CRITICAL, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function error($message, array $context = array()) - { - $this->addEntry(LogLevel::ERROR, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function warning($message, array $context = array()) - { - $this->addEntry(LogLevel::WARNING, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function notice($message, array $context = array()) - { - $this->addEntry(LogLevel::NOTICE, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function info($message, array $context = array()) - { - $this->addEntry(LogLevel::INFO, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function debug($message, array $context = array()) - { - $this->addEntry(LogLevel::DEBUG, (string) $message, $context); - } - - /** - * {@inheritdoc} - */ - public function log($level, $message, array $context = array()) - { - $this->addEntry($level, (string) $message, $context); - } -} diff --git a/src/Util/Logger/AbstractLogger.php b/src/Util/Logger/AbstractLogger.php new file mode 100644 index 0000000000..576f4bfb43 --- /dev/null +++ b/src/Util/Logger/AbstractLogger.php @@ -0,0 +1,158 @@ +channel = $channel; + $this->introspection = $introspection; + $this->logUid = Strings::getRandomHex(6); + } + + /** + * Simple interpolation of PSR-3 compliant replacements ( variables between '{' and '}' ) + * @see https://www.php-fig.org/psr/psr-3/#12-message + * + * @param string $message + * @param array $context + * + * @return string the interpolated message + */ + protected function psrInterpolate($message, array $context = array()) + { + $replace = []; + foreach ($context as $key => $value) { + // check that the value can be casted to string + if (!is_array($value) && (!is_object($value) || method_exists($value, '__toString'))) { + $replace['{' . $key . '}'] = $value; + } elseif (is_array($value)) { + $replace['{' . $key . '}'] = @json_encode($value); + } + } + + return strtr($message, $replace); + } + + /** + * {@inheritdoc} + */ + public function emergency($message, array $context = array()) + { + $this->addEntry(LogLevel::EMERGENCY, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function alert($message, array $context = array()) + { + $this->addEntry(LogLevel::ALERT, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function critical($message, array $context = array()) + { + $this->addEntry(LogLevel::CRITICAL, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function error($message, array $context = array()) + { + $this->addEntry(LogLevel::ERROR, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function warning($message, array $context = array()) + { + $this->addEntry(LogLevel::WARNING, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function notice($message, array $context = array()) + { + $this->addEntry(LogLevel::NOTICE, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function info($message, array $context = array()) + { + $this->addEntry(LogLevel::INFO, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function debug($message, array $context = array()) + { + $this->addEntry(LogLevel::DEBUG, (string) $message, $context); + } + + /** + * {@inheritdoc} + */ + public function log($level, $message, array $context = array()) + { + $this->addEntry($level, (string) $message, $context); + } +} diff --git a/src/Util/Logger/Monolog/DevelopHandler.php b/src/Util/Logger/Monolog/DevelopHandler.php new file mode 100644 index 0000000000..07a839345a --- /dev/null +++ b/src/Util/Logger/Monolog/DevelopHandler.php @@ -0,0 +1,50 @@ +developerIp = $developerIp; + } + + /** + * {@inheritdoc} + */ + public function handle(array $record) + { + if (!$this->isHandling($record)) { + return false; + } + + /// Just in case the remote IP is the same as the developer IP log the output + if (!is_null($this->developerIp) && $_SERVER['REMOTE_ADDR'] != $this->developerIp) + { + return false; + } + + return false === $this->bubble; + } +} diff --git a/src/Util/Logger/Monolog/FriendicaDevelopHandler.php b/src/Util/Logger/Monolog/FriendicaDevelopHandler.php deleted file mode 100644 index 13a4645357..0000000000 --- a/src/Util/Logger/Monolog/FriendicaDevelopHandler.php +++ /dev/null @@ -1,50 +0,0 @@ -developerIp = $developerIp; - } - - /** - * {@inheritdoc} - */ - public function handle(array $record) - { - if (!$this->isHandling($record)) { - return false; - } - - /// Just in case the remote IP is the same as the developer IP log the output - if (!is_null($this->developerIp) && $_SERVER['REMOTE_ADDR'] != $this->developerIp) - { - return false; - } - - return false === $this->bubble; - } -} diff --git a/src/Util/Logger/Monolog/FriendicaIntrospectionProcessor.php b/src/Util/Logger/Monolog/FriendicaIntrospectionProcessor.php deleted file mode 100644 index b8e7f5e107..0000000000 --- a/src/Util/Logger/Monolog/FriendicaIntrospectionProcessor.php +++ /dev/null @@ -1,43 +0,0 @@ -level = Logger::toMonologLevel($level); - $introspection->addClasses(array('Monolog\\')); - $this->introspection = $introspection; - } - - public function __invoke(array $record) - { - // return if the level is not high enough - if ($record['level'] < $this->level) { - return $record; - } - // we should have the call source now - $record['extra'] = array_merge( - $record['extra'], - $this->introspection->getRecord() - ); - - return $record; - } -} diff --git a/src/Util/Logger/Monolog/IntrospectionProcessor.php b/src/Util/Logger/Monolog/IntrospectionProcessor.php new file mode 100644 index 0000000000..18ea84680b --- /dev/null +++ b/src/Util/Logger/Monolog/IntrospectionProcessor.php @@ -0,0 +1,43 @@ +level = Logger::toMonologLevel($level); + $introspection->addClasses(array('Monolog\\')); + $this->introspection = $introspection; + } + + public function __invoke(array $record) + { + // return if the level is not high enough + if ($record['level'] < $this->level) { + return $record; + } + // we should have the call source now + $record['extra'] = array_merge( + $record['extra'], + $this->introspection->getRecord() + ); + + return $record; + } +} diff --git a/src/Util/Logger/README.md b/src/Util/Logger/README.md index 381bd94ba7..449403194d 100644 --- a/src/Util/Logger/README.md +++ b/src/Util/Logger/README.md @@ -24,6 +24,4 @@ Each logging implementation should pe capable of printing at least the following - A log message - A context of the log message (f.e which user) -If possible, a Logger should extend [`AbstractFriendicaLogger`](AbstractFriendicaLogger.php), because it contains additional, Friendica specific business logic for each logging call. - -Using AbstractFriendicaLogger makes the logger capable of adding profiling data for each log call. +If possible, a Logger should extend [`AbstractLogger`](AbstractLogger.php), because it contains additional, Friendica specific business logic for each logging call. diff --git a/src/Util/Logger/StreamLogger.php b/src/Util/Logger/StreamLogger.php index 10ad0a0976..7e52df80f1 100644 --- a/src/Util/Logger/StreamLogger.php +++ b/src/Util/Logger/StreamLogger.php @@ -9,7 +9,7 @@ use Psr\Log\LogLevel; /** * A Logger instance for logging into a stream (file, stdout, stderr) */ -class StreamLogger extends AbstractFriendicaLogger +class StreamLogger extends AbstractLogger { /** * The minimum loglevel at which this logger will be triggered diff --git a/src/Util/Logger/SyslogLogger.php b/src/Util/Logger/SyslogLogger.php index 2d4a5fe311..e21e953ac9 100644 --- a/src/Util/Logger/SyslogLogger.php +++ b/src/Util/Logger/SyslogLogger.php @@ -11,7 +11,7 @@ use Psr\Log\LogLevel; * A Logger instance for syslogging (fast, but simple) * @see http://php.net/manual/en/function.syslog.php */ -class SyslogLogger extends AbstractFriendicaLogger +class SyslogLogger extends AbstractLogger { const IDENT = 'Friendica'; diff --git a/tests/src/Util/Logger/StreamLoggerTest.php b/tests/src/Util/Logger/StreamLoggerTest.php index a2e81441b2..38706231ce 100644 --- a/tests/src/Util/Logger/StreamLoggerTest.php +++ b/tests/src/Util/Logger/StreamLoggerTest.php @@ -124,22 +124,6 @@ class StreamLoggerTest extends MockedTest $this->assertLoglineNums(5, $text); } - - /** - * Test if a file cannot get opened - * @expectedException \UnexpectedValueException - */ - public function testNoFile() - { - $logfile = vfsStream::newFile('friendica.log') - ->at($this->root) - ->chmod(0); - - $logger = new StreamLogger('test', $logfile->url(), $this->introspection); - - $logger->emergency('not working'); - } - /** * Test when a file isn't set * @expectedException \LogicException @@ -153,13 +137,16 @@ class StreamLoggerTest extends MockedTest } /** - * Test when a file doesn't exist + * Test when a file cannot be opened * @expectedException \UnexpectedValueException * @expectedExceptionMessageRegExp /The stream or file .* could not be opened: .* / */ public function testWrongUrl() { - $logger = new StreamLogger('test', 'wrongfile', $this->introspection); + $logfile = vfsStream::newFile('friendica.log') + ->at($this->root)->chmod(0); + + $logger = new StreamLogger('test', $logfile->url(), $this->introspection); $logger->emergency('not working'); } @@ -171,7 +158,7 @@ class StreamLoggerTest extends MockedTest */ public function testWrongDir() { - $logger = new StreamLogger('test', 'a/wrong/directory/file.txt', $this->introspection); + $logger = new StreamLogger('test', '/a/wrong/directory/file.txt', $this->introspection); $logger->emergency('not working'); }