OtelLogger
Connects Effect logging to the OpenTelemetry Logs SDK.
This module turns Effect log events into OpenTelemetry log records. It maps Effect log levels to OpenTelemetry severity numbers, provides the OtelLoggerProvider service, creates an Effect Logger with make, and offers layers for installing that logger or creating a scoped SDK LoggerProvider from one or more LogRecordProcessors.
Constructors
Converting
logLevelToSeverityNumber
Maps an Effect LogLevel to the corresponding OpenTelemetry SeverityNumber.
Details
OpenTelemetry log severity numbers are in the range 1 through 24. This function maps from Effect's log levels instead of using LogLevel.getOrdinal, whose internal sort ordinals, such as the Info ordinal 20000, fall outside the OpenTelemetry logs data model and can be treated as UNSPECIFIED by validating backends.
Signature
declare function logLevelToSeverityNumber(level: LogLevel): SeverityNumber;Layers
Creates a layer that installs the OpenTelemetry-backed Effect logger, merging with existing loggers by default.
When to use
Use to install the OpenTelemetry-backed Effect logger in an application that has an OtelLoggerProvider, so standard Effect logging emits OpenTelemetry log records.
Details
The layer installs the logger created by make. mergeWithExisting defaults to true; set it to false to replace the current logger set.
See
makefor constructing the logger directlylayerLoggerProviderfor creating the required logger provider
Signature
declare function layer(options: {
readonly mergeWithExisting?: boolean;
}): Layer<never, never, OtelLoggerProvider>;layerLoggerProvider
Creates a scoped OpenTelemetry logger provider from one or more log record processors, using the current Resource and flushing and shutting down the provider when the layer is released.
Signature
declare function layerLoggerProvider(
processor: any,
config?: Omit<LoggerProviderConfig, "resource"> & {
readonly shutdownTimeout?: Input;
},
): Layer<OtelLoggerProvider, never, Resource>;Services
OtelLoggerProvider
Context service containing the OpenTelemetry LoggerProvider used to emit Effect log records.
Signature
declare class OtelLoggerProvider extends Shape<
"@effect/opentelemetry/Logger/OtelLoggerProvider",
LoggerProvider,
this
> {
constructor(_: never);
}
Creates an Effect logger that emits log records through the configured OpenTelemetry logger provider.