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.
Constants
Instances
Equivalence
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
Orderfor severity ordering rather than exact level equalityisGreaterThanOrEqualTofor minimum-threshold checks
Signature
declare const Equivalence: Equ.Equivalence<LogLevel>;Models
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";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
Signature
type Severity = "Fatal" | "Error" | "Warn" | "Info" | "Debug" | "Trace";Ordering
getOrdinal
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
Orderfor comparing log levels without exposing numeric keysisGreaterThanOrEqualTofor minimum-threshold filtering
Signature
declare function getOrdinal(self: LogLevel): number;isGreaterThan
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;
};isGreaterThanOrEqualTo
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
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;
};isLessThanOrEqualTo
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 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
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>;
Returns all
LogLevelvalues in order fromAllthrough the concrete severities toNone.When to use
Use to enumerate or validate all accepted
LogLevelstring values, including theAllandNonesentinel levels.Details
The array order matches the module severity order:
All, concrete severities fromFataltoTrace, thenNone.Gotchas
This list includes
AllandNone, so it is not limited to concrete emitted severities.See
Severityfor the concrete message severity type that excludesAllandNoneOrderfor comparing these levels by severity order