feat: add log/log4rs
This commit is contained in:
52
__log/log4rs/src/main.rs
Normal file
52
__log/log4rs/src/main.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate log4rs;
|
||||
|
||||
use log::LevelFilter;
|
||||
use log4rs::append::console::ConsoleAppender;
|
||||
use log4rs::append::file::FileAppender;
|
||||
use log4rs::encode::pattern::PatternEncoder;
|
||||
use log4rs::config::{Appender, Config, Logger, Root};
|
||||
|
||||
fn main() {
|
||||
match std::env::args().nth(1).unwrap_or_else(|| "".to_owned()).as_str() {
|
||||
"f" | "file" => {
|
||||
println!("Load log4rs config from file");
|
||||
log4rs::init_file("log4rs.yml", Default::default()).unwrap();
|
||||
},
|
||||
_ => {
|
||||
println!("Load log4rs config from code");
|
||||
init_log();
|
||||
},
|
||||
}
|
||||
trace!("A trace");
|
||||
debug!("A debug");
|
||||
info!("A info");
|
||||
info!(target:"app", "File info");
|
||||
warn!("A warn");
|
||||
error!("A error");
|
||||
}
|
||||
|
||||
fn init_log() {
|
||||
let stdout = ConsoleAppender::builder()
|
||||
.encoder(Box::new(PatternEncoder::new("[Console] {d} - {l} -{t} - {m}{n}")))
|
||||
.build();
|
||||
|
||||
let file = FileAppender::builder()
|
||||
.encoder(Box::new(PatternEncoder::new("[File] {d} - {l} - {t} - {m}{n}")))
|
||||
.build("log/test.log")
|
||||
.unwrap();
|
||||
|
||||
let config = Config::builder()
|
||||
.appender(Appender::builder().build("stdout", Box::new(stdout)))
|
||||
.appender(Appender::builder().build("file", Box::new(file)))
|
||||
.logger(Logger::builder()
|
||||
.appender("file")
|
||||
.additive(false)
|
||||
.build("app", LevelFilter::Info))
|
||||
.build(Root::builder().appender("stdout").build(LevelFilter::Info))
|
||||
.unwrap();
|
||||
|
||||
let _ = log4rs::init_config(config).unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user