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): SeverityNumberLayers
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
- make for constructing the logger directly
- layerLoggerProvider for 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);}