1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
use log_hal::Log;
use log_hal::Level;
use core::fmt::Arguments;
use time::PrimitiveDateTime;
use colored::Colorize;
pub struct LogStd {
tag: &'static str,
}
impl Log for LogStd {
fn tag(&mut self, t: &'static str) {
self.tag = t;
}
fn log(&self, level: Level, args: &Arguments) {
let r = format!("{} [{}] {}", PrimitiveDateTime::now().format("%c"), self.tag, args);
match level {
Level::Info => println!("{}", r.white()),
Level::Warn => println!("{}", r.yellow()),
Level::Debug => println!("{}", r.green()),
Level::Error => println!("{}", r.red()),
Level::Panic => println!("{}", r.bright_red()),
}
}
}
impl Default for LogStd {
fn default() -> Self {
LogStd {
tag: ""
}
}
}
#[test]
fn test() {
let mut logger = LogStd::default();
logger.tag("arch");
logger.debug(&format_args!("{}", "hello"));
logger.info(&format_args!("{}", "hello"));
logger.warn(&format_args!("{}", "hello"));
logger.error(&format_args!("{}", "hello"));
}