try_runtime_core/common/
misc_logging.rs1use log::{log, Level};
2use paris::formatter::colorize_string;
3
4use crate::LOG_TARGET;
5
6fn level_to_color(level: Level) -> &'static str {
7 match level {
8 Level::Info => "blue",
9 Level::Warn => "yellow",
10 Level::Error => "red",
11 _ => "white",
12 }
13}
14
15pub fn basti_log(level: Level, message: &str) {
17 let color = level_to_color(level);
18 log!(
19 target: LOG_TARGET,
20 level,
21 "{}",
22 colorize_string(format!(
23 "<bold><{}>{}\n\n",
24 &color,
25 "-".repeat(message.len())
26 ))
27 );
28 log!(
29 target: LOG_TARGET,
30 level,
31 "{}",
32 colorize_string(format!("<bold><{}>{}\n\n", &color, message))
33 );
34 log!(
35 target: LOG_TARGET,
36 level,
37 "{}",
38 colorize_string(format!(
39 "<bold><{}>{}\n\n",
40 &color,
41 "-".repeat(message.len())
42 ))
43 );
44}
45
46pub struct LogLevelGuard(log::LevelFilter);
48impl LogLevelGuard {
49 pub fn new(new_level: log::LevelFilter) -> Self {
50 let old_level = log::max_level();
51 log::set_max_level(new_level);
52 Self(old_level)
53 }
54
55 pub fn only_errors() -> Self {
57 Self::new(log::LevelFilter::Error)
58 }
59}
60
61impl Drop for LogLevelGuard {
62 fn drop(&mut self) {
63 log::set_max_level(self.0);
64 }
65}