From 3e97c51418e6d27e9a81906f347fcb7c78e27d4f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:23:16 +0200 Subject: Adding upstream version 0.20.0. Signed-off-by: Daniel Baumann --- vendor/gipfl/log/src/AdditionalContextLogger.php | 25 +++ vendor/gipfl/log/src/DummyLogger.php | 44 ++++++ vendor/gipfl/log/src/Filter/LogLevelFilter.php | 39 +++++ vendor/gipfl/log/src/Formatter/StdOutFormatter.php | 34 +++++ vendor/gipfl/log/src/IcingaWeb/IcingaLogger.php | 29 ++++ vendor/gipfl/log/src/IcingaWeb/LoggerLogWriter.php | 32 ++++ vendor/gipfl/log/src/LogFilter.php | 14 ++ vendor/gipfl/log/src/LogFormatter.php | 8 + vendor/gipfl/log/src/LogLevel.php | 66 ++++++++ vendor/gipfl/log/src/LogWriter.php | 8 + vendor/gipfl/log/src/LogWriterWithContext.php | 8 + vendor/gipfl/log/src/Logger.php | 169 +++++++++++++++++++++ vendor/gipfl/log/src/PrefixLogger.php | 25 +++ vendor/gipfl/log/src/Writer/JournaldLogger.php | 61 ++++++++ .../log/src/Writer/JsonRpcConnectionWriter.php | 51 +++++++ vendor/gipfl/log/src/Writer/JsonRpcWriter.php | 54 +++++++ vendor/gipfl/log/src/Writer/ProxyLogWriter.php | 14 ++ vendor/gipfl/log/src/Writer/SyslogWriter.php | 34 +++++ .../gipfl/log/src/Writer/SystemdStdoutWriter.php | 61 ++++++++ .../gipfl/log/src/Writer/WritableStreamWriter.php | 44 ++++++ 20 files changed, 820 insertions(+) create mode 100644 vendor/gipfl/log/src/AdditionalContextLogger.php create mode 100644 vendor/gipfl/log/src/DummyLogger.php create mode 100644 vendor/gipfl/log/src/Filter/LogLevelFilter.php create mode 100644 vendor/gipfl/log/src/Formatter/StdOutFormatter.php create mode 100644 vendor/gipfl/log/src/IcingaWeb/IcingaLogger.php create mode 100644 vendor/gipfl/log/src/IcingaWeb/LoggerLogWriter.php create mode 100644 vendor/gipfl/log/src/LogFilter.php create mode 100644 vendor/gipfl/log/src/LogFormatter.php create mode 100644 vendor/gipfl/log/src/LogLevel.php create mode 100644 vendor/gipfl/log/src/LogWriter.php create mode 100644 vendor/gipfl/log/src/LogWriterWithContext.php create mode 100644 vendor/gipfl/log/src/Logger.php create mode 100644 vendor/gipfl/log/src/PrefixLogger.php create mode 100644 vendor/gipfl/log/src/Writer/JournaldLogger.php create mode 100644 vendor/gipfl/log/src/Writer/JsonRpcConnectionWriter.php create mode 100644 vendor/gipfl/log/src/Writer/JsonRpcWriter.php create mode 100644 vendor/gipfl/log/src/Writer/ProxyLogWriter.php create mode 100644 vendor/gipfl/log/src/Writer/SyslogWriter.php create mode 100644 vendor/gipfl/log/src/Writer/SystemdStdoutWriter.php create mode 100644 vendor/gipfl/log/src/Writer/WritableStreamWriter.php (limited to 'vendor/gipfl/log/src') diff --git a/vendor/gipfl/log/src/AdditionalContextLogger.php b/vendor/gipfl/log/src/AdditionalContextLogger.php new file mode 100644 index 0000000..92891c5 --- /dev/null +++ b/vendor/gipfl/log/src/AdditionalContextLogger.php @@ -0,0 +1,25 @@ +context = $context; + $this->wrappedLogger = $logger; + } + + public function log($level, $message, array $context = []) + { + $this->wrappedLogger->log($level, $message, $context + $this->context); + } +} diff --git a/vendor/gipfl/log/src/DummyLogger.php b/vendor/gipfl/log/src/DummyLogger.php new file mode 100644 index 0000000..3e7b0c4 --- /dev/null +++ b/vendor/gipfl/log/src/DummyLogger.php @@ -0,0 +1,44 @@ +level = LogLevel::mapNameToNumeric($level); + } + + /** + * @param string $level + * @param string $message + * @param array $context + * @return bool + */ + public function wants($level, $message, $context = []) + { + return LogLevel::mapNameToNumeric($level) <= $this->level; + } + + /** + * @return string + */ + public function getLevel() + { + return LogLevel::mapNumericToName($this->level); + } +} diff --git a/vendor/gipfl/log/src/Formatter/StdOutFormatter.php b/vendor/gipfl/log/src/Formatter/StdOutFormatter.php new file mode 100644 index 0000000..363a0b2 --- /dev/null +++ b/vendor/gipfl/log/src/Formatter/StdOutFormatter.php @@ -0,0 +1,34 @@ +renderDatePrefix() . sprintf($message, $context); + } + + protected function renderDatePrefix() + { + if ($this->showTimestamp) { + return date($this->dateFormat, microtime(true)); + } + + return ''; + } + + public function setShowTimestamp($show = true) + { + $this->showTimestamp = $show; + } +} diff --git a/vendor/gipfl/log/src/IcingaWeb/IcingaLogger.php b/vendor/gipfl/log/src/IcingaWeb/IcingaLogger.php new file mode 100644 index 0000000..d5de5e9 --- /dev/null +++ b/vendor/gipfl/log/src/IcingaWeb/IcingaLogger.php @@ -0,0 +1,29 @@ +setLevel($level); + } + + $instance->writer = $writer; + } catch (ConfigurationError $e) { + static::$instance->error($e->getMessage()); + } + } +} diff --git a/vendor/gipfl/log/src/IcingaWeb/LoggerLogWriter.php b/vendor/gipfl/log/src/IcingaWeb/LoggerLogWriter.php new file mode 100644 index 0000000..aea4da4 --- /dev/null +++ b/vendor/gipfl/log/src/IcingaWeb/LoggerLogWriter.php @@ -0,0 +1,32 @@ + 'debug', + IcingaApplicationLogger::INFO => 'info', + IcingaApplicationLogger::WARNING => 'warning', + IcingaApplicationLogger::ERROR => 'error', + ]; + + public function __construct(LoggerInterface $logger) + { + parent::__construct(new ConfigObject([])); + $this->logger = $logger; + } + + public function log($severity, $message) + { + $severity = static::$severityMap[$severity]; + $this->logger->$severity($message); + } +} diff --git a/vendor/gipfl/log/src/LogFilter.php b/vendor/gipfl/log/src/LogFilter.php new file mode 100644 index 0000000..79749f7 --- /dev/null +++ b/vendor/gipfl/log/src/LogFilter.php @@ -0,0 +1,14 @@ + self::LEVEL_EMERGENCY, + self::ALERT => self::LEVEL_ALERT, + self::CRITICAL => self::LEVEL_CRITICAL, + self::ERROR => self::LEVEL_ERROR, + self::WARNING => self::LEVEL_WARNING, + self::NOTICE => self::LEVEL_NOTICE, + self::INFO => self::LEVEL_INFO, + self::DEBUG => self::LEVEL_DEBUG, + ]; + + const MAP_LEVEL_TO_NAME = [ + self::LEVEL_EMERGENCY => self::EMERGENCY, + self::LEVEL_ALERT => self::ALERT, + self::LEVEL_CRITICAL => self::CRITICAL, + self::LEVEL_ERROR => self::ERROR, + self::LEVEL_WARNING => self::WARNING, + self::LEVEL_NOTICE => self::NOTICE, + self::LEVEL_INFO => self::INFO, + self::LEVEL_DEBUG => self::DEBUG, + ]; + + /** + * @param string $name + * @return int + */ + public static function mapNameToNumeric($name) + { + if (array_key_exists($name, static::MAP_NAME_TO_LEVEL)) { + return static::MAP_NAME_TO_LEVEL[$name]; + } + + throw new InvalidArgumentException("$name is not a valid log level name"); + } + + /** + * @param int $number + * @return string + */ + public static function mapNumericToName($number) + { + if (array_key_exists($number, static::MAP_LEVEL_TO_NAME)) { + return static::MAP_LEVEL_TO_NAME[$number]; + } + + throw new InvalidArgumentException("$number is not a valid numeric log level"); + } +} diff --git a/vendor/gipfl/log/src/LogWriter.php b/vendor/gipfl/log/src/LogWriter.php new file mode 100644 index 0000000..8b91d5c --- /dev/null +++ b/vendor/gipfl/log/src/LogWriter.php @@ -0,0 +1,8 @@ +writers[spl_object_hash($writer)] = $writer; + } + + /** + * @param LogFilter $filter + */ + public function addFilter(LogFilter $filter) + { + $this->filters[spl_object_hash($filter)] = $filter; + } + + /** + * @return LogWriter[] + */ + public function getWriters() + { + return array_values($this->writers); + } + + /** + * @return LogFilter[] + */ + public function getFilters() + { + return array_values($this->filters); + } + + /** + * @param LogWriter $writer + */ + public function removeWriter(LogWriter $writer) + { + unset($this->filters[spl_object_hash($writer)]); + } + + /** + * @param LogFilter $filter + */ + public function removeFilter(LogFilter $filter) + { + unset($this->filters[spl_object_hash($filter)]); + } + + /** + * @deprecated Please use LogLevel::mapNameToNumeric() + */ + public static function mapLogLevel($name) + { + return LogLevel::mapNameToNumeric($name); + } + + public function emergency($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function alert($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function critical($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function error($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function warning($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function notice($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function info($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function debug($message, array $context = []) + { + $this->log(__FUNCTION__, $message, $context); + } + + public function wants($level, $message, array $context = []) + { + foreach ($this->filters as $filter) { + if (! $filter->wants($level, $message, $context)) { + return false; + } + } + + return true; + } + + public function log($level, $message, array $context = []) + { + if (! $this->wants($level, $message, $context)) { + return; + } + + foreach ($this->writers as $writer) { + if ($writer instanceof LogWriterWithContext) { + $writer->write($level, $message, $context); + } else { + $writer->write($level, $this->formatMessage( + $message, + $context + )); + } + } + } + + protected function formatMessage($message, $context = []) + { + if (empty($context)) { + return $message; + } else { + return \sprintf($message, $context); + } + } +} diff --git a/vendor/gipfl/log/src/PrefixLogger.php b/vendor/gipfl/log/src/PrefixLogger.php new file mode 100644 index 0000000..a7273a2 --- /dev/null +++ b/vendor/gipfl/log/src/PrefixLogger.php @@ -0,0 +1,25 @@ +prefix = $prefix; + $this->wrappedLogger = $logger; + } + + public function log($level, $message, array $context = []) + { + $this->wrappedLogger->log($level, $this->prefix . $message, $context); + } +} diff --git a/vendor/gipfl/log/src/Writer/JournaldLogger.php b/vendor/gipfl/log/src/Writer/JournaldLogger.php new file mode 100644 index 0000000..b3b0125 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/JournaldLogger.php @@ -0,0 +1,61 @@ +socket = new NotificationSocket($socket ?: self::JOURNALD_SOCKET); + } + + /** + * @param string|null $identifier + * @return $this + */ + public function setIdentifier($identifier) + { + return $this->setExtraField('SYSLOG_IDENTIFIER', $identifier); + } + + /** + * @param string $name + * @param ?string $value + * @return $this + */ + public function setExtraField($name, $value) + { + if ($value === null) { + unset($this->extraFields[$name]); + } else { + $this->extraFields[$name] = (string) $value; + } + + return $this; + } + + public function write($level, $message, $context = []) + { + $this->socket->send([ + 'MESSAGE' => $message, + 'PRIORITY' => LogLevel::mapNameToNumeric($level), + ] + $context + $this->extraFields); + } +} diff --git a/vendor/gipfl/log/src/Writer/JsonRpcConnectionWriter.php b/vendor/gipfl/log/src/Writer/JsonRpcConnectionWriter.php new file mode 100644 index 0000000..e4042e7 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/JsonRpcConnectionWriter.php @@ -0,0 +1,51 @@ +connection = $connection; + $this->defaultContext = $defaultContext; + } + + /** + * @param string $method + */ + public function setMethod($method) + { + $this->method = $method; + } + + public function write($level, $message, $context = []) + { + $message = iconv('UTF-8', 'UTF-8//IGNORE', $message); + $this->connection->notification($this->method, $this->defaultContext + [ + 'level' => $level, + 'timestamp' => microtime(true), + 'message' => $message, + 'context' => $context, + ]); + } +} diff --git a/vendor/gipfl/log/src/Writer/JsonRpcWriter.php b/vendor/gipfl/log/src/Writer/JsonRpcWriter.php new file mode 100644 index 0000000..a2fa505 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/JsonRpcWriter.php @@ -0,0 +1,54 @@ +connection = $connection; + $this->defaultContext = $defaultContext; + } + + /** + * @param string $method + */ + public function setMethod($method) + { + $this->method = $method; + } + + public function write($level, $message, $context = []) + { + $message = iconv('UTF-8', 'UTF-8//IGNORE', $message); + $this->connection->notification($this->method, $this->defaultContext + [ + 'level' => $level, + 'timestamp' => microtime(true), + 'message' => $message, + 'context' => $context, + ]); + } +} diff --git a/vendor/gipfl/log/src/Writer/ProxyLogWriter.php b/vendor/gipfl/log/src/Writer/ProxyLogWriter.php new file mode 100644 index 0000000..78d5262 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/ProxyLogWriter.php @@ -0,0 +1,14 @@ +log($level, $message, $context); + } +} diff --git a/vendor/gipfl/log/src/Writer/SyslogWriter.php b/vendor/gipfl/log/src/Writer/SyslogWriter.php new file mode 100644 index 0000000..86b8254 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/SyslogWriter.php @@ -0,0 +1,34 @@ +ident = $ident; + $this->facility = $facility; + } + + public function write($level, $message) + { + openlog($this->ident, LOG_PID, $this->facility); + syslog(LogLevel::mapNameToNumeric($level), str_replace("\n", ' ', $message)); + } +} diff --git a/vendor/gipfl/log/src/Writer/SystemdStdoutWriter.php b/vendor/gipfl/log/src/Writer/SystemdStdoutWriter.php new file mode 100644 index 0000000..bb66525 --- /dev/null +++ b/vendor/gipfl/log/src/Writer/SystemdStdoutWriter.php @@ -0,0 +1,61 @@ +stdOut = new WritableResourceStream(STDOUT, $loop); + } else { + $this->stdOut = $stdOut; + } + } + + /** + * @param int $facility + */ + public function setFacility($facility) + { + if (! is_int($facility)) { + throw new InvalidArgumentException('Facility needs to be an integer'); + } + if ($facility < 0 || $facility > 23) { + throw new InvalidArgumentException("Facility needs to be between 0 and 23, got $facility"); + } + $this->facility = $facility; + } + + public function write($level, $message) + { + $this->stdOut->write(sprintf( + "<%d>%s\n", + LogLevel::mapNameToNumeric($level), + $message + )); + } +} diff --git a/vendor/gipfl/log/src/Writer/WritableStreamWriter.php b/vendor/gipfl/log/src/Writer/WritableStreamWriter.php new file mode 100644 index 0000000..4ae877f --- /dev/null +++ b/vendor/gipfl/log/src/Writer/WritableStreamWriter.php @@ -0,0 +1,44 @@ +setStream($stream); + } + + /** + * @param string $separator + */ + public function setSeparator($separator) + { + $this->separator = $separator; + } + + public function setStream(WritableStreamInterface $stream) + { + $this->stream = $stream; + } + + public function write($level, $message) + { + $this->stream->write("$level: $message" . $this->separator); + } +} -- cgit v1.2.3