class LoggerProvider
Hierarchy
- class \OpenTelemetry\SDK\Logs\LoggerProvider implements \OpenTelemetry\SDK\Logs\LoggerProviderInterface
Expanded class hierarchy of LoggerProvider
File
-
vendor/
open-telemetry/ sdk/ Logs/ LoggerProvider.php, line 16
Namespace
OpenTelemetry\SDK\LogsView source
class LoggerProvider implements LoggerProviderInterface {
private readonly LoggerSharedState $loggerSharedState;
private readonly WeakMap $loggers;
/**
* @param Configurator<LoggerConfig>|null $configurator
*/
public function __construct(LogRecordProcessorInterface $processor, InstrumentationScopeFactoryInterface $instrumentationScopeFactory, ?ResourceInfo $resource = null, ?Configurator $configurator = null) {
$this->loggerSharedState = new LoggerSharedState($resource ?? ResourceInfoFactory::defaultResource(), (new LogRecordLimitsBuilder())->build(), $processor);
$this->loggers = new WeakMap();
}
/**
* @see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/sdk.md#logger-creation
*/
public function getLogger(string $name, ?string $version = null, ?string $schemaUrl = null, iterable $attributes = []) : LoggerInterface {
if ($this->loggerSharedState
->hasShutdown()) {
return NoopLogger::getInstance();
}
$scope = $this->instrumentationScopeFactory
->create($name, $version, $schemaUrl, $attributes);
$logger = new Logger($this->loggerSharedState, $scope, $this->configurator);
$this->loggers
->offsetSet($logger, null);
return $logger;
}
public function shutdown(?CancellationInterface $cancellation = null) : bool {
return $this->loggerSharedState
->shutdown($cancellation);
}
public function forceFlush(?CancellationInterface $cancellation = null) : bool {
return $this->loggerSharedState
->forceFlush($cancellation);
}
public static function builder() : LoggerProviderBuilder {
return new LoggerProviderBuilder();
}
/**
* Update the {@link Configurator} for a {@link LoggerProvider}, which will
* reconfigure all loggers created from the provider.
* @experimental
*/
public function updateConfigurator(Configurator $configurator) : void {
$this->configurator = $configurator;
foreach ($this->loggers as $logger => $unused) {
$logger->updateConfig($configurator);
}
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
LoggerProvider::$loggers | private | property | ||
LoggerProvider::$loggerSharedState | private | property | ||
LoggerProvider::builder | public static | function | ||
LoggerProvider::forceFlush | public | function | Overrides LoggerProviderInterface::forceFlush | |
LoggerProvider::getLogger | public | function | ||
LoggerProvider::shutdown | public | function | Overrides LoggerProviderInterface::shutdown | |
LoggerProvider::updateConfigurator | public | function | Update the {@link Configurator} for a {@link LoggerProvider}, which will reconfigure all loggers created from the provider. @experimental |
Overrides Configurable::updateConfigurator |
LoggerProvider::__construct | public | function |