Context.Reference<boolean>Context reference for controlling whether tracing is enabled globally. When set to false, spans will not be registered with the tracer and tracing overhead is minimized.
When to use
Use to disable or re-enable span registration in the current context.
Example (Toggling tracing)
import { Effect, References } from "effect"
const tracingControl = Effect.gen(function*() {
// Check if tracing is enabled (default is true)
const current = yield* References.TracerEnabled
console.log(current) // true
// Disable tracing globally
yield* Effect.provideService(
Effect.gen(function*() {
const isEnabled = yield* References.TracerEnabled
console.log(isEnabled) // false
// Spans will not be traced in this context
yield* Effect.log("This will not be traced")
}),
References.TracerEnabled,
false
)
// Re-enable tracing
yield* Effect.provideService(
Effect.gen(function*() {
const isEnabled = yield* References.TracerEnabled
console.log(isEnabled) // true
// All subsequent spans will be traced
yield* Effect.log("This will be traced")
}),
References.TracerEnabled,
true
)
})references
Source effect/References.ts:4841 lines
export const const TracerEnabled: Context.Reference<boolean>const TracerEnabled: {
defaultValue: () => Shape;
of: (this: void, self: boolean) => boolean;
context: (self: boolean) => Context.Context<never>;
use: (f: (service: boolean) => Effect<A, E, R>) => Effect<A, E, R>;
useSync: (f: (service: boolean) => 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 controlling whether tracing is enabled globally. When set to false,
spans will not be registered with the tracer and tracing overhead is minimized.
When to use
Use to disable or re-enable span registration in the current context.
Example (Toggling tracing)
import { Effect, References } from "effect"
const tracingControl = Effect.gen(function*() {
// Check if tracing is enabled (default is true)
const current = yield* References.TracerEnabled
console.log(current) // true
// Disable tracing globally
yield* Effect.provideService(
Effect.gen(function*() {
const isEnabled = yield* References.TracerEnabled
console.log(isEnabled) // false
// Spans will not be traced in this context
yield* Effect.log("This will not be traced")
}),
References.TracerEnabled,
false
)
// Re-enable tracing
yield* Effect.provideService(
Effect.gen(function*() {
const isEnabled = yield* References.TracerEnabled
console.log(isEnabled) // true
// All subsequent spans will be traced
yield* Effect.log("This will be traced")
}),
References.TracerEnabled,
true
)
})
TracerEnabled: import ContextContext.type Context.Reference = /*unresolved*/ anyReference<boolean> = import referencesreferences.const TracerEnabled: Context.Reference<boolean>const TracerEnabled: {
defaultValue: () => Shape;
of: (this: void, self: boolean) => boolean;
context: (self: boolean) => Context.Context<never>;
use: (f: (service: boolean) => Effect<A, E, R>) => Effect<A, E, R>;
useSync: (f: (service: boolean) => 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;
}
TracerEnabled