@@ -40,7 +40,7 @@ import * as runtime_ from "./internal/runtime.js"
4040import * as schedule_ from "./internal/schedule.js"
4141import * as internalTracer from "./internal/tracer.js"
4242import type * as Layer from "./Layer.js"
43- import type { LogLevel } from "./LogLevel.js"
43+ import type * as LogLevel from "./LogLevel.js"
4444import type * as ManagedRuntime from "./ManagedRuntime.js"
4545import type * as Metric from "./Metric.js"
4646import type * as MetricLabel from "./MetricLabel.js"
@@ -10678,7 +10678,7 @@ export const log: (...message: ReadonlyArray<any>) => Effect<void, never, never>
1067810678 * @category Logging
1067910679 */
1068010680export const logWithLevel = (
10681- level : LogLevel ,
10681+ level : LogLevel . LogLevel ,
1068210682 ...message : ReadonlyArray < any >
1068310683) : Effect < void > => effect . logWithLevel ( level ) ( ...message )
1068410684
@@ -10972,10 +10972,46 @@ export const logAnnotations: Effect<HashMap.HashMap<string, unknown>> = effect.l
1097210972 * @category Logging
1097310973 */
1097410974export const withUnhandledErrorLogLevel : {
10975- ( level : Option . Option < LogLevel > ) : < A , E , R > ( self : Effect < A , E , R > ) => Effect < A , E , R >
10976- < A , E , R > ( self : Effect < A , E , R > , level : Option . Option < LogLevel > ) : Effect < A , E , R >
10975+ ( level : Option . Option < LogLevel . LogLevel > ) : < A , E , R > ( self : Effect < A , E , R > ) => Effect < A , E , R >
10976+ < A , E , R > ( self : Effect < A , E , R > , level : Option . Option < LogLevel . LogLevel > ) : Effect < A , E , R >
1097710977} = core . withUnhandledErrorLogLevel
1097810978
10979+ /**
10980+ * Conditionally executes an effect based on the specified log level and currently enabled log level.
10981+ *
10982+ * **Details**
10983+ *
10984+ * This function runs the provided effect only if the specified log level is
10985+ * enabled. If the log level is enabled, the effect is executed and its result
10986+ * is wrapped in `Some`. If the log level is not enabled, the effect is not
10987+ * executed and `None` is returned.
10988+ *
10989+ * This function is useful for conditionally executing logging-related effects
10990+ * or other operations that depend on the current log level configuration.
10991+ *
10992+ * @example
10993+ * ```ts
10994+ * import { Effect, Logger, LogLevel } from "effect"
10995+ *
10996+ * const program = Effect.gen(function* () {
10997+ * yield* Effect.whenLogLevel(Effect.logTrace("message1"), LogLevel.Trace); // returns `None`
10998+ * yield* Effect.whenLogLevel(Effect.logDebug("message2"), LogLevel.Debug); // returns `Some`
10999+ * }).pipe(Logger.withMinimumLogLevel(LogLevel.Debug));
11000+ *
11001+ * // Effect.runFork(program)
11002+ * // timestamp=... level=DEBUG fiber=#0 message=message2
11003+ * ```
11004+ *
11005+ * @see {@link FiberRef.minimumLogLevel } to retrieve the current minimum log level.
11006+ *
11007+ * @since 3.13.0
11008+ * @category Logging
11009+ */
11010+ export const whenLogLevel : {
11011+ ( level : LogLevel . LogLevel | LogLevel . Literal ) : < A , E , R > ( self : Effect < A , E , R > ) => Effect < Option . Option < A > , E , R >
11012+ < A , E , R > ( self : Effect < A , E , R > , level : LogLevel . LogLevel | LogLevel . Literal ) : Effect < Option . Option < A > , E , R >
11013+ } = fiberRuntime . whenLogLevel
11014+
1097911015/**
1098011016 * Converts an effect's failure into a fiber termination, removing the error
1098111017 * from the effect's type.
0 commit comments