Browse Source

Configurable log level

master
3moon 8 years ago
parent
commit
ae4c7cbd63
2 changed files with 13 additions and 4 deletions
  1. +9
    -4
      src/logger.rs
  2. +4
    -0
      src/misc.rs

+ 9
- 4
src/logger.rs View File

@ -8,21 +8,26 @@ pub fn init() -> Result<(), SetLoggerError> {
unsafe {
log::set_logger_raw(|max_log_level| {
static LOGGER: ConsoleLogger = ConsoleLogger;
max_log_level.set(LogLevelFilter::Info);
&ConsoleLogger
max_log_level.set(LOGGER.filter());
&LOGGER
})
}
}
struct ConsoleLogger;
impl ConsoleLogger {
fn filter(&self) -> LogLevelFilter {
LogLevelFilter::Debug
}
}
impl Log for ConsoleLogger {
fn enabled(&self, metadata: &LogMetadata) -> bool {
metadata.level() <= LogLevel::Info
metadata.level() <= ::misc::LOG_LEVEL
}
fn log(&self, record: &LogRecord) {
if self.enabled(record.metadata()) {
println!("{} - {}", record.level(), record.args());
println!("{}: {}", record.level(), record.args());
}
}
}

+ 4
- 0
src/misc.rs View File

@ -1,3 +1,7 @@
//! Miscellaneous things, mostly constants baked in at compile time.
use log::LogLevel;
pub const VERSION: &'static str = env!("CARGO_PKG_VERSION");
pub const LOG_LEVEL: LogLevel = LogLevel::Info;

Loading…
Cancel
Save