class LoggerExporter
Hierarchy
- class \OpenTelemetry\SDK\Trace\SpanExporter\LoggerExporter implements \OpenTelemetry\SDK\Trace\SpanExporterInterface, \Psr\Log\LoggerAwareInterface uses \OpenTelemetry\SDK\Trace\Behavior\SpanExporterTrait, \OpenTelemetry\SDK\Trace\Behavior\UsesSpanConverterTrait, \OpenTelemetry\SDK\Trace\Behavior\LoggerAwareTrait
Expanded class hierarchy of LoggerExporter
File
-
vendor/
open-telemetry/ sdk/ Trace/ SpanExporter/ LoggerExporter.php, line 18
Namespace
OpenTelemetry\SDK\Trace\SpanExporterView source
class LoggerExporter implements SpanExporterInterface, LoggerAwareInterface {
use SpanExporterTrait;
use UsesSpanConverterTrait;
use LoggerAwareTrait;
public const GRANULARITY_AGGREGATE = 1;
public const GRANULARITY_SPAN = 2;
private string $serviceName;
private int $granularity = self::GRANULARITY_AGGREGATE;
public function __construct(string $serviceName, ?LoggerInterface $logger = null, ?string $defaultLogLevel = LogLevel::DEBUG, ?SpanConverterInterface $converter = null, int $granularity = 1) {
$this->setServiceName($serviceName);
$this->setLogger($logger ?? new NullLogger());
$this->setDefaultLogLevel($defaultLogLevel ?? LogLevel::DEBUG);
$this->setSpanConverter($converter ?? new FriendlySpanConverter());
$this->setGranularity($granularity);
}
/** @inheritDoc */
public function doExport(iterable $spans) : bool {
try {
$this->doLog($spans);
} catch (Throwable) {
return false;
}
return true;
}
private function setServiceName(string $serviceName) : void {
$this->serviceName = $serviceName;
}
public function setGranularity(int $granularity) : void {
$this->granularity = $granularity === self::GRANULARITY_SPAN ? self::GRANULARITY_SPAN : self::GRANULARITY_AGGREGATE;
}
private function doLog(iterable $spans) : void {
if ($this->granularity === self::GRANULARITY_AGGREGATE) {
$this->log($this->serviceName, $this->getSpanConverter()
->convert($spans));
return;
}
foreach ($spans as $span) {
$this->log($this->serviceName, $this->getSpanConverter()
->convert([
$span,
]));
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
LoggerAwareTrait::$defaultLogLevel | private | property | ||
LoggerAwareTrait::$logger | protected | property | The logger instance. | |
LoggerAwareTrait::getLogger | protected | function | ||
LoggerAwareTrait::log | protected | function | ||
LoggerAwareTrait::setDefaultLogLevel | public | function | ||
LoggerAwareTrait::setLogger | public | function | Sets a logger. | |
LoggerExporter::$granularity | private | property | ||
LoggerExporter::$serviceName | private | property | ||
LoggerExporter::doExport | public | function | @inheritDoc | Overrides SpanExporterTrait::doExport |
LoggerExporter::doLog | private | function | ||
LoggerExporter::GRANULARITY_AGGREGATE | public | constant | ||
LoggerExporter::GRANULARITY_SPAN | public | constant | ||
LoggerExporter::setGranularity | public | function | ||
LoggerExporter::setServiceName | private | function | ||
LoggerExporter::__construct | public | function | ||
SpanExporterTrait::$running | private | property | ||
SpanExporterTrait::export | public | function | ||
SpanExporterTrait::forceFlush | public | function | @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#forceflush-2 | |
SpanExporterTrait::shutdown | public | function | @see https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/sdk.md#shutdown-2 | |
UsesSpanConverterTrait::$converter | private | property | ||
UsesSpanConverterTrait::convertSpan | protected | function | @psalm-suppress PossiblyNullReference | |
UsesSpanConverterTrait::getSpanConverter | public | function | ||
UsesSpanConverterTrait::setSpanConverter | protected | function |