summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorBen Bridle <ben@derelict.engineering>2025-02-03 09:34:56 +1300
committerBen Bridle <ben@derelict.engineering>2025-02-03 09:34:56 +1300
commit4db8a3c200345d67ef178308a11d253a112d6304 (patch)
tree28ed058ab1efe645a242640dd2620960779dd150 /src/lib.rs
parent9d9fe9f30e46bc3b723d6a35434c3202c7f0f163 (diff)
downloadlog-4db8a3c200345d67ef178308a11d253a112d6304.zip
Implement a fatal log level
The error log level now reports recoverable errors, with the fatal log level being reserved for unrecoverable errors where the program should immediately terminate.
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 7af1f20..5777fcd 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -70,6 +70,22 @@ pub fn get_log_level() -> LogLevel {
$crate::NORMAL,
);
}
+ }};
+}
+
+#[macro_export] macro_rules! fatal {
+ ($($tokens:tt)*) => {{
+ if *$crate::LOG_LEVEL.lock().unwrap() <= { $crate::LogLevel::Fatal } {
+ eprint!("{}{}[FATAL]{}: ",
+ $crate::BOLD,
+ $crate::RED,
+ $crate::WHITE,
+ );
+ eprint!($($tokens)*);
+ eprintln!("{}",
+ $crate::NORMAL,
+ );
+ }
std::process::exit(1);
}};
}