#[macro_use]
extern crate simple_log;
use log::LevelFilter;
use simple_log::LogConfig;
fn main() -> Result<(), String> {
let config = r#"
level = "debug,filter_module::app::ctrl=warn,filter_module::app::launch::conf=error"
out_kind = "console"
time_format = "%H:%M:%S.%f"
"#;
let conf: LogConfig = toml::from_str(config).unwrap();
assert_eq!(
conf,
LogConfig {
path: None,
directory: None,
level: (
LevelFilter::Debug,
vec![
("filter_module::app::ctrl", LevelFilter::Warn).into(),
("filter_module::app::launch::conf", LevelFilter::Error).into(),
]
),
size: 0,
out_kind: vec!["console".into()],
roll_count: 0,
time_format: Some("%H:%M:%S.%f".to_string()),
}
);
simple_log::new(conf).unwrap();
debug!("test console debug");
info!("test console info");
warn!("test console warn");
error!("test console error");
app::init_app();
app::launch::init_launch();
app::launch::conf::err_conf();
app::launch::conf::debug_conf(); app::launch::parser::err_parser();
app::ctrl::init_ctrl();
Ok(())
}
pub(crate) mod app {
pub fn init_app() {
info!("init app")
}
pub mod launch {
pub fn init_launch() {
info!("init launch")
}
pub mod conf {
pub fn err_conf() {
error!("conf log")
}
pub fn debug_conf() {
debug!("conf log")
}
}
pub mod parser {
pub fn err_parser() {
debug!("parser log")
}
}
}
pub mod ctrl {
pub fn init_ctrl() {
info!("init ctrl")
}
}
}