summaryrefslogtreecommitdiff
path: root/vendor/open-telemetry/api/Behavior/Internal/LogWriter
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/open-telemetry/api/Behavior/Internal/LogWriter')
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/ErrorLogWriter.php13
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/Formatter.php37
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/LogWriterInterface.php10
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/NoopLogWriter.php13
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/Psr3LogWriter.php22
-rw-r--r--vendor/open-telemetry/api/Behavior/Internal/LogWriter/StreamLogWriter.php25
6 files changed, 120 insertions, 0 deletions
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/ErrorLogWriter.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/ErrorLogWriter.php
new file mode 100644
index 000000000..1b9f785aa
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/ErrorLogWriter.php
@@ -0,0 +1,13 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+class ErrorLogWriter implements LogWriterInterface
+{
+ public function write($level, string $message, array $context): void
+ {
+ error_log(Formatter::format($level, $message, $context));
+ }
+}
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Formatter.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Formatter.php
new file mode 100644
index 000000000..4cfd6f9d4
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Formatter.php
@@ -0,0 +1,37 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+class Formatter
+{
+ public static function format($level, string $message, array $context): string
+ {
+ $exception = (array_key_exists('exception', $context) && $context['exception'] instanceof \Throwable)
+ ? $context['exception']
+ : null;
+ if ($exception) {
+ $message = sprintf(
+ 'OpenTelemetry: [%s] %s [exception] %s%s%s',
+ $level,
+ $message,
+ $exception->getMessage(),
+ PHP_EOL,
+ $exception->getTraceAsString()
+ );
+ } else {
+ //get calling location, skipping over trait, formatter etc
+ $caller = debug_backtrace()[3];
+ $message = sprintf(
+ 'OpenTelemetry: [%s] %s in %s(%s)',
+ $level,
+ $message,
+ $caller['file'],
+ $caller['line'],
+ );
+ }
+
+ return $message;
+ }
+}
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/LogWriterInterface.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/LogWriterInterface.php
new file mode 100644
index 000000000..046d21fc9
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/LogWriterInterface.php
@@ -0,0 +1,10 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+interface LogWriterInterface
+{
+ public function write($level, string $message, array $context): void;
+}
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/NoopLogWriter.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/NoopLogWriter.php
new file mode 100644
index 000000000..f7529c082
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/NoopLogWriter.php
@@ -0,0 +1,13 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+class NoopLogWriter implements LogWriterInterface
+{
+ public function write($level, string $message, array $context): void
+ {
+ //do nothing
+ }
+}
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Psr3LogWriter.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Psr3LogWriter.php
new file mode 100644
index 000000000..5b2d19c15
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/Psr3LogWriter.php
@@ -0,0 +1,22 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+use Psr\Log\LoggerInterface;
+
+class Psr3LogWriter implements LogWriterInterface
+{
+ private LoggerInterface $logger;
+
+ public function __construct(LoggerInterface $logger)
+ {
+ $this->logger = $logger;
+ }
+
+ public function write($level, string $message, array $context): void
+ {
+ $this->logger->log($level, $message, $context);
+ }
+}
diff --git a/vendor/open-telemetry/api/Behavior/Internal/LogWriter/StreamLogWriter.php b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/StreamLogWriter.php
new file mode 100644
index 000000000..f65f1e856
--- /dev/null
+++ b/vendor/open-telemetry/api/Behavior/Internal/LogWriter/StreamLogWriter.php
@@ -0,0 +1,25 @@
+<?php
+
+declare(strict_types=1);
+
+namespace OpenTelemetry\API\Behavior\Internal\LogWriter;
+
+class StreamLogWriter implements LogWriterInterface
+{
+ private $stream;
+
+ public function __construct(string $destination)
+ {
+ $stream = fopen($destination, 'a');
+ if ($stream) {
+ $this->stream = $stream;
+ } else {
+ throw new \RuntimeException(sprintf('Unable to open %s for writing', $destination));
+ }
+ }
+
+ public function write($level, string $message, array $context): void
+ {
+ fwrite($this->stream, Formatter::format($level, $message, $context));
+ }
+}