Skip to content

Commit

Permalink
Simplify default log output (simpler timestamp, hide module info)
Browse files Browse the repository at this point in the history
  • Loading branch information
w1th0utnam3 committed Jul 6, 2023
1 parent 3730fee commit 0be2e16
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 11 deletions.
34 changes: 26 additions & 8 deletions splashsurf/src/logging.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ pub(crate) fn initialize_logging(
// Second option: use verbosity level
verbosity.into_filter().unwrap_or_else(|| {
// Third option: use log level from env
if let Some(log_level) = std::env::var_os("RUST_LOG") {
if let Some(log_level) = env::var_os("RUST_LOG") {
let log_level = log_level.to_string_lossy().to_ascii_lowercase();
match log_level.as_str() {
"off" => log::LevelFilter::Off,
Expand All @@ -105,20 +105,26 @@ pub(crate) fn initialize_logging(
})
};

fern::Dispatch::new()
.format(|out, message, record| {
if matches!(verbosity, VerbosityLevel::None) {
build_logger(log_filter_level, |out, message, record| {
out.finish(format_args!(
"[{}][{}] {}",
chrono::Local::now().format("%T%.3f"),
record.level(),
message
))
})?;
} else {
build_logger(log_filter_level, |out, message, record| {
out.finish(format_args!(
"[{}][{}][{}] {}",
chrono::Local::now().to_rfc3339_opts(chrono::SecondsFormat::Micros, false),
record.target(),
record.level(),
message
))
})
.level(log_filter_level)
.chain(ProgressHandler::new(std::io::stdout()).into_output())
.apply()
.map_err(|e| anyhow!("Unable to apply logger configuration ({:?})", e))?;
})?;
}

if let Some(filter_level) = unknown_log_filter_level {
error!(
Expand All @@ -130,6 +136,18 @@ pub(crate) fn initialize_logging(
Ok(())
}

fn build_logger<F>(log_filter_level: log::LevelFilter, formatter: F) -> Result<(), anyhow::Error>
where
F: Fn(fern::FormatCallback, &std::fmt::Arguments, &log::Record) + Sync + Send + 'static,
{
fern::Dispatch::new()
.format(formatter)
.level(log_filter_level)
.chain(ProgressHandler::new(std::io::stdout()).into_output())
.apply()
.map_err(|e| anyhow!("Unable to apply logger configuration ({:?})", e))
}

/// Prints program name, version etc. and command line arguments to log
pub(crate) fn log_program_info() {
info!(
Expand Down
9 changes: 6 additions & 3 deletions splashsurf/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ enum VerbosityLevel {
None,
Verbose,
VeryVerbose,
VeryVeryVerbose,
}

impl From<u8> for VerbosityLevel {
Expand All @@ -120,7 +121,8 @@ impl From<u8> for VerbosityLevel {
0 => VerbosityLevel::None,
1 => VerbosityLevel::Verbose,
2 => VerbosityLevel::VeryVerbose,
_ => VerbosityLevel::VeryVerbose,
3 => VerbosityLevel::VeryVeryVerbose,
_ => VerbosityLevel::VeryVeryVerbose,
}
}
}
Expand All @@ -130,8 +132,9 @@ impl VerbosityLevel {
fn into_filter(self) -> Option<log::LevelFilter> {
match self {
VerbosityLevel::None => None,
VerbosityLevel::Verbose => Some(log::LevelFilter::Debug),
VerbosityLevel::VeryVerbose => Some(log::LevelFilter::Trace),
VerbosityLevel::Verbose => Some(log::LevelFilter::Info),
VerbosityLevel::VeryVerbose => Some(log::LevelFilter::Debug),
VerbosityLevel::VeryVeryVerbose => Some(log::LevelFilter::Trace),
}
}
}

0 comments on commit 0be2e16

Please sign in to comment.