(level?: Severity): (...message: ReadonlyArray<any>) => Effect<void>Creates a logger function that logs at the specified level.
Details
If no level is provided, the logger uses the fiber's current log level and
extracts any Cause values from the message list.
Example (Logging at a dynamic level)
import { Effect } from "effect"
const logWarn = Effect.logWithLevel("Warn")
const program = Effect.gen(function*() {
yield* logWarn("Cache miss", { key: "user:1" })
})export const const logWithLevel: (
level?: Severity
) => (
...message: ReadonlyArray<any>
) => Effect<void>
Creates a logger function that logs at the specified level.
Details
If no level is provided, the logger uses the fiber's current log level and
extracts any Cause values from the message list.
Example (Logging at a dynamic level)
import { Effect } from "effect"
const logWarn = Effect.logWithLevel("Warn")
const program = Effect.gen(function*() {
yield* logWarn("Cache miss", { key: "user:1" })
})
logWithLevel: (level: Severitylevel?: type Severity = "Fatal" | "Error" | "Warn" | "Info" | "Debug" | "Trace"Log levels that represent actual message severities, excluding the All and
None sentinel levels.
When to use
Use when typing emitted log message severities, such as explicit log calls,
current log level references, or error-report severity annotations, where
All and None are not valid values.
Severity) => (...message: readonly any[]message: interface ReadonlyArray<T>ReadonlyArray<any>) => interface Effect<out A, out E = never, out R = never>The Effect interface defines a value that lazily describes a workflow or
job. The workflow requires some context R, and may fail with an error of
type E, or succeed with a value of type A.
When to use
Use when you need to represent a lazy, composable workflow that can require
services, fail with a typed error, or succeed with a typed value.
Details
Effect values model resourceful interaction with the outside world,
including synchronous, asynchronous, concurrent, and parallel interaction.
They use a fiber-based concurrency model, with built-in support for
scheduling, fine-grained interruption, structured concurrency, and high
scalability.
To run an Effect value, you need a Runtime, which is a type that is
capable of executing Effect values.
Effect<void> =
import internalinternal.const logWithLevel: (
level?: LogLevel.Severity
) => (
...message: ReadonlyArray<any>
) => Effect.Effect<void>
logWithLevel