version 0.2.8
- 增加 控制台日志独立格式化功能
- 通过
set_console_body_fmt
可以设置日志内容在控制台的显示格式,与set_body_fmt
类似,不同的是set_body_fmt
对控制台信息与文件信息均有效。 - 测试程序地址: test_0_2_8.rs
示例:
fn testlog2() {
LOG.set_console(true).set_cutmode_by_size("028test2.log", 1 << 20, 0, false).set_level(LEVEL::Trace).set_attr_format(|fmt| {
fmt.set_console_body_fmt(|level, body| {
//处理body的末尾换行符
let trimmed_body = if body.ends_with('\n') { format!("{}{}", body.as_str()[..body.len() - 1].to_string(), "\x1b[0m\n") } else { format!("{}{}", body, "\x1b[0m\n") };
match level {
LEVEL::Trace => format!("{}{}", "\x1b[34m", trimmed_body), //蓝色
LEVEL::Debug => format!("{}{}", "\x1b[36m", trimmed_body), //青色
LEVEL::Info => format!("{}{}", "\x1b[32m", trimmed_body), //绿色
LEVEL::Warn => format!("{}{}", "\x1b[33m", trimmed_body), //黄色
LEVEL::Error => format!("{}{}", "\x1b[31m", trimmed_body), //红色
LEVEL::Fatal => format!("{}{}", "\x1b[41m", trimmed_body), //背景红
LEVEL::Off => "".to_string(),
}
});
fmt.set_body_fmt(|level, body| {
//处理body的末尾换行符
let trimmed_body = if body.ends_with('\n') { format!("{}{}", body.as_str()[..body.len() - 1].to_string(), "\x1b[0m\n") } else { format!("{}{}", body, "\x1b[0m\n") };
match level {
LEVEL::Trace => format!("{}{}", "\x1b[44m", trimmed_body), //背景蓝色
LEVEL::Debug => format!("{}{}", "\x1b[46m", trimmed_body), //背景青色
LEVEL::Info => format!("{}{}", "\x1b[42m", trimmed_body), //背景绿色
LEVEL::Warn => format!("{}{}", "\x1b[43m", trimmed_body), //背景黄色
LEVEL::Error => format!("{}{}", "\x1b[41m", trimmed_body), //背景红色
LEVEL::Fatal => format!("{}{}", "\x1b[45m", trimmed_body), //背景紫色
LEVEL::Off => "".to_string(),
}
});
});
trace!("trace!", "this is sync log");
debug!("debug!", "this is sync log");
info!("info!", "this is sync log");
warn!("warn!", "this is sync log");
error!("error!", "this is sync log");
fatal!("fata!", "this is sync log");
thread::sleep(Duration::from_secs(1))
}
说明:示例对控制台日志进行独立设置