diff options
Diffstat (limited to 'vendor/open-telemetry/sdk/Trace/Behavior/LoggerAwareTrait.php')
-rw-r--r-- | vendor/open-telemetry/sdk/Trace/Behavior/LoggerAwareTrait.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/open-telemetry/sdk/Trace/Behavior/LoggerAwareTrait.php b/vendor/open-telemetry/sdk/Trace/Behavior/LoggerAwareTrait.php new file mode 100644 index 000000000..24f5e56a8 --- /dev/null +++ b/vendor/open-telemetry/sdk/Trace/Behavior/LoggerAwareTrait.php @@ -0,0 +1,48 @@ +<?php + +declare(strict_types=1); + +namespace OpenTelemetry\SDK\Trace\Behavior; + +use Psr\Log\LoggerAwareTrait as PsrTrait; +use Psr\Log\LoggerInterface; +use Psr\Log\LogLevel; +use Psr\Log\NullLogger; + +trait LoggerAwareTrait +{ + use PsrTrait; + + private string $defaultLogLevel = LogLevel::INFO; + + /** + * @param string $logLevel + */ + public function setDefaultLogLevel(string $logLevel): void + { + $this->defaultLogLevel = $logLevel; + } + + /** + * @param string $message + * @param array $context + * @param string|null $level + */ + protected function log(string $message, array $context = [], ?string $level = null): void + { + $this->getLogger()->log( + $level ?? $this->defaultLogLevel, + $message, + $context + ); + } + + protected function getLogger(): LoggerInterface + { + if ($this->logger !== null) { + return $this->logger; + } + + return new NullLogger(); + } +} |