Better logging.

This commit is contained in:
2019-01-17 13:22:06 +01:00
parent d056b52e71
commit b60419f3d1
3 changed files with 35 additions and 8 deletions

View File

@@ -1,5 +1,6 @@
use std::process::Command;
use fern::colors::{Color, ColoredLevelConfig};
use structopt::StructOpt;
mod context;
@@ -11,6 +12,9 @@ use crate::probe::*;
#[derive(Debug, StructOpt)]
#[structopt(name = "whoareyou", about = "Search for swedish phone numbers.")]
struct Opt {
#[structopt(short = "v", parse(from_occurrences))]
verbose: u8,
#[structopt(short = "o", long = "open")]
open: bool,
@@ -20,25 +24,38 @@ struct Opt {
fn main() {
let opt = Opt::from_args();
fern::Dispatch::new()
.format(|out, message, record| {
let colors = ColoredLevelConfig::new()
.error(Color::Red)
.warn(Color::Yellow)
.info(Color::White)
.debug(Color::White)
.trace(Color::BrightBlack);
let mut config = fern::Dispatch::new()
.format(move |out, message, record| {
out.finish(format_args!(
"{}[{}][{}] {}",
chrono::Local::now().format("[%Y-%m-%d %H:%M:%S]"),
record.target(),
record.level(),
colors.color(record.level()),
message
))
})
.level(log::LevelFilter::Off)
.level_for("reqwest", log::LevelFilter::Off)
.level_for("hyper", log::LevelFilter::Off)
.level_for("tokio_reactor", log::LevelFilter::Off)
.level_for("html5ever", log::LevelFilter::Off)
.level_for("selectors", log::LevelFilter::Off)
.chain(std::io::stdout())
.apply()
.expect("failed to init fern");
.chain(std::io::stdout());
config = match opt.verbose {
0 => config.level(log::LevelFilter::Info),
1 => config.level(log::LevelFilter::Debug),
2 => config.level(log::LevelFilter::Debug),
_ => config.level(log::LevelFilter::Trace),
};
config.apply().expect("failed to init fern");
let mut probes: Vec<Box<Probe>> = vec![
Box::new(Eniro),