Skip to content

LogLevel

Log-level types and helpers used by Effect logging. The module defines all accepted log levels, the concrete emitted severities, the ordered level list, equality and ordering instances, threshold comparison helpers, and an effect for checking whether a level is enabled by the current logging settings.

11 exports Added in v2.0.0 Source

Constants

values

Added in v4.0.0 Source

Returns all LogLevel values in order from All through the concrete severities to None.

When to use

Use to enumerate or validate all accepted LogLevel string values, including the All and None sentinel levels.

Details

The array order matches the module severity order: All, concrete severities from Fatal to Trace, then None.

Gotchas

This list includes All and None, so it is not limited to concrete emitted severities.

See

  • Severity for the concrete message severity type that excludes All and None
  • Order for comparing these levels by severity order

Signature

declare const values: ReadonlyArray<LogLevel>;

Instances

Equivalence

Added in v4.0.0 Source

Equivalence instance for log levels using strict equality (===).

When to use

Use to compare two LogLevel values when only the exact same level should match.

Details

Each log level string, including All and None, only matches itself.

See

Signature

declare const Equivalence: Equ.Equivalence<LogLevel>;

Models

LogLevel type

Added in v2.0.0 Source

Represents every level used by Effect logging, including concrete message severities and the All and None sentinel levels.

When to use

Use to type values that may be either concrete log message severities or logging configuration sentinels.

Details

The levels are ordered from most severe to least severe: - All - Special level that allows all messages - Fatal - System is unusable, immediate attention required - Error - Error conditions that should be investigated - Warn - Warning conditions that may indicate problems - Info - Informational messages about normal operation - Debug - Debug information useful during development - Trace - Very detailed trace information - None - Special level that suppresses all messages

Signature

type LogLevel = "All" | "Fatal" | "Error" | "Warn" | "Info" | "Debug" | "Trace" | "None";

Severity type

Added in v4.0.0 Source

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.

See

  • LogLevel for the wider log-level type that also accepts the All and None sentinel levels
  • values for the runtime list of all accepted LogLevel values, including sentinels

Signature

type Severity = "Fatal" | "Error" | "Warn" | "Info" | "Debug" | "Trace";

Ordering

getOrdinal

Added in v4.0.0 Source

Returns the ordinal value of the log level.

When to use

Use to project a LogLevel into the numeric sort key used by LogLevel.Order when custom ordering code or an integration needs a number instead of an Order comparison.

Details

The mapping is All to Number.MIN_SAFE_INTEGER, Trace to 0, Debug to 10000, Info to 20000, Warn to 30000, Error to 40000, Fatal to 50000, and None to Number.MAX_SAFE_INTEGER.

Gotchas

These ordinals are internal sort keys; do not treat them as external severity numbers.

See

Signature

declare function getOrdinal(self: LogLevel): number;

Determines if the first log level is more severe than the second.

When to use

Use to check whether one log level is strictly more severe than another.

Details

Returns true if self represents a more severe level than that.

Signature

declare const isGreaterThan: {
  (that: LogLevel): (self: LogLevel) => boolean;
  (self: LogLevel, that: LogLevel): boolean;
};

Determines if the first log level is more severe than or equal to the second.

When to use

Use to implement minimum log-level filtering by checking whether a message level meets a threshold.

Details

Returns true if self represents a level that is more severe than or equal to that.

Signature

declare const isGreaterThanOrEqualTo: {
  (that: LogLevel): (self: LogLevel) => boolean;
  (self: LogLevel, that: LogLevel): boolean;
};

isLessThan

Added in v4.0.0 Source

Determines if the first log level is less severe than the second.

When to use

Use to check whether one log level is strictly less severe than another.

Details

Returns true if self represents a less severe level than that.

Signature

declare const isLessThan: {
  (that: LogLevel): (self: LogLevel) => boolean;
  (self: LogLevel, that: LogLevel): boolean;
};

Determines if the first log level is less severe than or equal to the second.

When to use

Use to implement maximum log-level filtering by checking whether a level is at or below a threshold.

Details

Returns true if self represents a level that is less severe than or equal to that.

Signature

declare const isLessThanOrEqualTo: {
  (that: LogLevel): (self: LogLevel) => boolean;
  (self: LogLevel, that: LogLevel): boolean;
};

Order

Added in v2.0.0 Source

Order instance for LogLevel that defines the severity ordering.

When to use

Use to sort or compare log levels according to Effect's severity order.

Details

This order treats "All" as the least restrictive level and "None" as the most restrictive, with Fatal being the most severe actual log level.

Signature

declare const Order: Ord.Order<LogLevel>;

Predicates

isEnabled

Added in v4.0.0 Source

Checks whether a given log level is enabled for the current fiber.

When to use

Use to check whether a log level would be emitted under the current fiber's minimum log level.

Details

A log level is enabled when it is greater than or equal to References.MinimumLogLevel.

Signature

declare function isEnabled(self: LogLevel): Effect<boolean>;