Context.Reference<Severity>Context reference for the current log severity used by Effect.log when no explicit
level is provided.
When to use
Use to set the default severity for Effect.log entries that do not provide
an explicit level.
Details
Use MinimumLogLevel to control which log entries are filtered out.
Example (Changing the current log level)
import { Console, Effect, References } from "effect"
const dynamicLogging = Effect.gen(function*() {
// Get current log level (default is "Info")
const current = yield* References.CurrentLogLevel
console.log(current) // "Info"
// Set log level to Debug for detailed logging
yield* Effect.provideService(
Effect.gen(function*() {
const level = yield* References.CurrentLogLevel
console.log(level) // "Debug"
yield* Console.debug("This debug message will be shown")
}),
References.CurrentLogLevel,
"Debug"
)
// Change to Error level to reduce noise
yield* Effect.provideService(
Effect.gen(function*() {
const level = yield* References.CurrentLogLevel
console.log(level) // "Error"
yield* Console.info("This info message will be filtered out")
yield* Console.error("This error message will be shown")
}),
References.CurrentLogLevel,
"Error"
)
})references
Source effect/References.ts:2871 lines
export const const CurrentLogLevel: Context.Reference<Severity>const CurrentLogLevel: {
defaultValue: () => Shape;
of: (this: void, self: Severity) => Severity;
context: (self: Severity) => Context.Context<never>;
use: (f: (service: Severity) => Effect<A, E, R>) => Effect<A, E, R>;
useSync: (f: (service: Severity) => A) => Effect<A, never, never>;
Identifier: Identifier;
Service: Shape;
key: string;
stack: string | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
Context reference for the current log severity used by Effect.log when no explicit
level is provided.
When to use
Use to set the default severity for Effect.log entries that do not provide
an explicit level.
Details
Use MinimumLogLevel to control which log entries are filtered out.
Example (Changing the current log level)
import { Console, Effect, References } from "effect"
const dynamicLogging = Effect.gen(function*() {
// Get current log level (default is "Info")
const current = yield* References.CurrentLogLevel
console.log(current) // "Info"
// Set log level to Debug for detailed logging
yield* Effect.provideService(
Effect.gen(function*() {
const level = yield* References.CurrentLogLevel
console.log(level) // "Debug"
yield* Console.debug("This debug message will be shown")
}),
References.CurrentLogLevel,
"Debug"
)
// Change to Error level to reduce noise
yield* Effect.provideService(
Effect.gen(function*() {
const level = yield* References.CurrentLogLevel
console.log(level) // "Error"
yield* Console.info("This info message will be filtered out")
yield* Console.error("This error message will be shown")
}),
References.CurrentLogLevel,
"Error"
)
})
CurrentLogLevel: import ContextContext.type Context.Reference = /*unresolved*/ anyReference<import SeveritySeverity> = import referencesreferences.const CurrentLogLevel: Context.Reference<Severity>const CurrentLogLevel: {
defaultValue: () => Shape;
of: (this: void, self: Severity) => Severity;
context: (self: Severity) => Context.Context<never>;
use: (f: (service: Severity) => Effect<A, E, R>) => Effect<A, E, R>;
useSync: (f: (service: Severity) => A) => Effect<A, never, never>;
Identifier: Identifier;
Service: Shape;
key: string;
stack: string | undefined;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
toString: () => string;
toJSON: () => unknown;
}
CurrentLogLevel