Skip to content

Instantly share code, notes, and snippets.

@petitviolet
Last active September 6, 2020 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petitviolet/293f3bde77eaac9e03e9bb73ae32f572 to your computer and use it in GitHub Desktop.
Save petitviolet/293f3bde77eaac9e03e9bb73ae32f572 to your computer and use it in GitHub Desktop.
Simple logger implementation in Rust
[dependencies]
log = { version = "0.4", features = [ "std" ] }
use log;
pub struct Logger(log::LevelFilter);
impl Logger {
pub fn init(max_level: log::Level) -> () {
let levelFilter = max_level.to_level_filter();
let logger = Self(levelFilter);
log::set_max_level(levelFilter);
log::set_boxed_logger(Box::new(logger)).expect("fail");
}
}
impl log::Log for Logger {
fn enabled(&self, metadata: &log::Metadata) -> bool {
metadata.level().to_level_filter() <= self.0
}
fn log(&self, record: &log::Record) {
if !self.enabled(record.metadata()) {
return;
}
println!(
"{:5} [{}] - {}",
record.level(),
record.target(),
record.args()
);
}
fn flush(&self) {}
}
mod logger;
use log;
logger::Logger::init(log::Level::Info);
log::info!("Hellow World!");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment