From c10de768543ba82f1930b5dbe27385fa50327483 Mon Sep 17 00:00:00 2001 From: VC Date: Sat, 24 Apr 2021 09:07:06 +0200 Subject: [PATCH] Adding logging facility --- src/main.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main.rs b/src/main.rs index 575358a..529faa7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,13 @@ use scootaloo::*; // clap use clap::{App, Arg, SubCommand}; +// log +use log::{LevelFilter, error}; +use simple_logger::SimpleLogger; + +// std +use std::str::FromStr; + fn main() { let matches = App::new(env!("CARGO_PKG_NAME")) .version(env!("CARGO_PKG_VERSION")) @@ -15,6 +22,13 @@ fn main() { .help("TOML config file for scootaloo (default /usr/local/etc/scootaloo.toml)") .takes_value(true) .display_order(1)) + .arg(Arg::with_name("log_level") + .short("l") + .long("loglevel") + .value_name("LOGLEVEL") + .help("Log level. Valid values are: Off, Warn, Error, Info, Debug") + .takes_value(true) + .display_order(2)) .subcommand(SubCommand::with_name("register") .version(env!("CARGO_PKG_VERSION")) .about("Command to register to a Mastodon Instance") @@ -32,7 +46,18 @@ fn main() { return; } + if matches.is_present("log_level") { + match LevelFilter::from_str(matches.value_of("log_level").unwrap()) { + Ok(level) => { SimpleLogger::new().with_level(level).init().unwrap()}, + Err(e) => { + SimpleLogger::new().with_level(LevelFilter::Error).init().unwrap(); + error!("Unknown log level filter: {}", e); + } + }; + } + let config = parse_toml(matches.value_of("config").unwrap_or("/usr/local/etc/scootaloo.toml")); run(config); } +