Class SdkLoggerProviderBuilder
- java.lang.Object
-
- io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder
-
public final class SdkLoggerProviderBuilder extends java.lang.Object
Builder class forSdkLoggerProvider
instances.- Since:
- 1.27.0
-
-
Field Summary
Fields Modifier and Type Field Description private Clock
clock
private ScopeConfiguratorBuilder<LoggerConfig>
loggerConfiguratorBuilder
private java.util.function.Supplier<LogLimits>
logLimitsSupplier
private java.util.List<LogRecordProcessor>
logRecordProcessors
private Resource
resource
-
Constructor Summary
Constructors Constructor Description SdkLoggerProviderBuilder()
-
Method Summary
-
-
-
Field Detail
-
logRecordProcessors
private final java.util.List<LogRecordProcessor> logRecordProcessors
-
resource
private Resource resource
-
logLimitsSupplier
private java.util.function.Supplier<LogLimits> logLimitsSupplier
-
clock
private Clock clock
-
loggerConfiguratorBuilder
private ScopeConfiguratorBuilder<LoggerConfig> loggerConfiguratorBuilder
-
-
Method Detail
-
setResource
public SdkLoggerProviderBuilder setResource(Resource resource)
Assign aResource
to be attached to allLogRecordData
created byLogger
s obtained from theSdkLoggerProvider
.- Parameters:
resource
- the resource- Returns:
- this
-
addResource
public SdkLoggerProviderBuilder addResource(Resource resource)
Merge aResource
with the current.- Parameters:
resource
-Resource
to merge with current.- Since:
- 1.29.0
-
setLogLimits
public SdkLoggerProviderBuilder setLogLimits(java.util.function.Supplier<LogLimits> logLimitsSupplier)
Assign aSupplier
ofLogLimits
.LogLimits
will be retrieved each time aLogger.logRecordBuilder()
is called.The
logLimitsSupplier
must be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
logLimitsSupplier
- the supplier that will be used to retrieve theLogLimits
for everyLogRecordBuilder
.- Returns:
- this
-
addLogRecordProcessor
public SdkLoggerProviderBuilder addLogRecordProcessor(LogRecordProcessor processor)
Add a log processor.LogRecordProcessor.onEmit(Context, ReadWriteLogRecord)
will be called each time a log is emitted byLogger
instances obtained from theSdkLoggerProvider
.- Parameters:
processor
- the log processor- Returns:
- this
-
setClock
public SdkLoggerProviderBuilder setClock(Clock clock)
Assign aClock
.- Parameters:
clock
- The clock to use for all temporal needs.- Returns:
- this
-
setLoggerConfigurator
SdkLoggerProviderBuilder setLoggerConfigurator(ScopeConfigurator<LoggerConfig> loggerConfigurator)
Set the logger configurator, which computesLoggerConfig
for eachInstrumentationScopeInfo
.This method is experimental so not public. You may reflectively call it using
SdkLoggerProviderUtil.setLoggerConfigurator(SdkLoggerProviderBuilder, ScopeConfigurator)
.Overrides any matchers added via
addLoggerConfiguratorCondition(Predicate, LoggerConfig)
.- See Also:
LoggerConfig.configuratorBuilder()
-
addLoggerConfiguratorCondition
SdkLoggerProviderBuilder addLoggerConfiguratorCondition(java.util.function.Predicate<InstrumentationScopeInfo> scopeMatcher, LoggerConfig loggerConfig)
Adds a condition to the logger configurator, which computesLoggerConfig
for eachInstrumentationScopeInfo
.This method is experimental so not public. You may reflectively call it using
SdkLoggerProviderUtil.addLoggerConfiguratorCondition(SdkLoggerProviderBuilder, Predicate, LoggerConfig)
.Applies after any previously added conditions.
If
setLoggerConfigurator(ScopeConfigurator)
was previously called, this condition will only be applied if theFunction.apply(Object)
returns null for the matchedInstrumentationScopeInfo
(s).
-
build
public SdkLoggerProvider build()
Create aSdkLoggerProvider
instance.- Returns:
- an instance configured with the provided options
-
-