Logger.ts
Logger.ts overview
Section titled “Logger.ts overview”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.
Since v4.0.0
Exports Grouped by Category
Section titled “Exports Grouped by Category”constructors
Section titled “constructors”Creates an Effect logger that emits log records through the configured OpenTelemetry logger provider.
Signature
declare const make: Effect.Effect<Logger.Logger<unknown, void>, never, OtelLoggerProvider>Since v4.0.0
converting
Section titled “converting”logLevelToSeverityNumber
Section titled “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 const logLevelToSeverityNumber: (level: LogLevel.LogLevel) => SeverityNumberSince v4.0.0
layers
Section titled “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 const layer: (options: { readonly mergeWithExisting?: boolean | undefined}) => Layer.Layer<never, never, OtelLoggerProvider>Since v4.0.0
layerLoggerProvider
Section titled “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 const layerLoggerProvider: ( processor: Otel.LogRecordProcessor | NonEmptyReadonlyArray<Otel.LogRecordProcessor>, config?: Omit<Otel.LoggerProviderConfig, "resource"> & { readonly shutdownTimeout?: Duration.Input | undefined }) => Layer.Layer<OtelLoggerProvider, never, Resource>Since v4.0.0
services
Section titled “services”OtelLoggerProvider (class)
Section titled “OtelLoggerProvider (class)”Context service containing the OpenTelemetry LoggerProvider used to emit Effect log records.
Signature
declare class OtelLoggerProviderSince v4.0.0