Level-priority
Convert a Level into its numeric severity priority. This helper provides the ordering used by threshold checks and level comparisons.
Interface
pub fn Level::priority(self : Level) -> Int {}input
self : Level- Level value whose numeric severity should be read.
output
Int- Numeric severity where larger numbers represent more severe levels.
Explanation
Detailed rules explaining key parameters and behaviors
- The built-in priorities are
Trace=10,Debug=20,Info=30,Warn=40, andError=50. - These values define the severity ordering used by
Level::enabled(...)and helpers such aslevel_at_least(...). - Callers should treat the mapping as a stable ordering mechanism rather than as user-facing display text.
- Higher priority means higher severity.
How to Use
Here are some specific examples provided.
When Compare Levels Explicitly
When code should compare severities numerically:
if Level::Warn.priority() > Level::Info.priority() {
logger.info("warn is more severe than info")
}In this example, the numeric mapping drives direct comparison logic.
When Build Custom Threshold Logic
When a helper wants to reproduce built-in gating:
fn keep(level : Level, min_level : Level) -> Bool {
level.priority() >= min_level.priority()
}In this example, the same ordering contract used by the logger API is applied directly.
Error Case
e.g.:
There is no failure path for valid
Levelvalues.If code depends on the exact numbers instead of the ordering, future refactoring would be more brittle than necessary.
Notes
Prefer
Level::enabled(...)when you need threshold semantics rather than raw numeric comparison.priority()is primarily an ordering helper, not a display helper.