Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

LoggerProviderBuilder.php

Namespace

OpenTelemetry\SDK\Logs

File

vendor/open-telemetry/sdk/Logs/LoggerProviderBuilder.php

View source
<?php

declare (strict_types=1);
namespace OpenTelemetry\SDK\Logs;

use OpenTelemetry\SDK\Common\Attribute\Attributes;
use OpenTelemetry\SDK\Common\Instrumentation\InstrumentationScopeFactory;
use OpenTelemetry\SDK\Common\InstrumentationScope\Configurator;
use OpenTelemetry\SDK\Logs\Processor\MultiLogRecordProcessor;
use OpenTelemetry\SDK\Logs\Processor\NoopLogRecordProcessor;
use OpenTelemetry\SDK\Resource\ResourceInfo;
class LoggerProviderBuilder {
    
    /** @var array<LogRecordProcessorInterface> */
    private array $processors = [];
    private ?ResourceInfo $resource = null;
    private ?Configurator $configurator = null;
    public function addLogRecordProcessor(LogRecordProcessorInterface $processor) : self {
        $this->processors[] = $processor;
        return $this;
    }
    public function setResource(ResourceInfo $resource) : self {
        $this->resource = $resource;
        return $this;
    }
    public function build() : LoggerProviderInterface {
        return new LoggerProvider($this->buildProcessor(), new InstrumentationScopeFactory(Attributes::factory()), $this->resource, configurator: $this->configurator ?? Configurator::logger());
    }
    public function setConfigurator(Configurator $configurator) : self {
        $this->configurator = $configurator;
        return $this;
    }
    private function buildProcessor() : LogRecordProcessorInterface {
        return match (count($this->processors)) {    0 => NoopLogRecordProcessor::getInstance(),
            1 => $this->processors[0],
            default => new MultiLogRecordProcessor($this->processors),
        
        };
    }

}

Classes

Title Deprecated Summary
LoggerProviderBuilder
RSS feed
Powered by Drupal