From 8f5f2102f9f158ae476ddeb076893aeda084175b Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 25 Mar 2021 11:52:59 +0100 Subject: [PATCH] Add a --log switch --- backend/src/main.rs | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/backend/src/main.rs b/backend/src/main.rs index ecf913c..8ccb27d 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -35,8 +35,36 @@ struct Opts { about = "This is the socket address Telemetry is listening to. This is restricted localhost (127.0.0.1) by default and should be fine for most use cases. If you are using Telemetry in a container, you likely want to set this to '0.0.0.0:8000'" )] socket: std::net::SocketAddr, + #[clap( + arg_enum, + required = false, + long = "log", + default_value = "info", + about = "Log level." + )] + log_level: LogLevel, } +#[derive(Clap, Debug, PartialEq)] +enum LogLevel { + Error, + Warn, + Info, + Debug, + Trace, +} + +impl Into for &LogLevel { + fn into(self) -> log::LevelFilter { + match self { + LogLevel::Error => log::LevelFilter::Error, + LogLevel::Warn => log::LevelFilter::Warn, + LogLevel::Info => log::LevelFilter::Info, + LogLevel::Debug => log::LevelFilter::Debug, + LogLevel::Trace => log::LevelFilter::Trace, + } + } +} /// Entry point for connecting nodes #[get("/submit/")] async fn node_route( @@ -127,10 +155,10 @@ async fn health(aggregator: web::Data>) -> Result std::io::Result<()> { - // SimpleLogger::new().with_level(log::LevelFilter::Info).init().expect("Must be able to start a logger"); - SimpleLogger::new().with_level(log::LevelFilter::Debug).init().expect("Must be able to start a logger"); - let opts: Opts = Opts::parse(); + let log_level = &opts.log_level; + SimpleLogger::new().with_level(log_level.into()).init().expect("Must be able to start a logger"); + let aggregator = Aggregator::new().start(); let factory = LocatorFactory::new(); let locator = SyncArbiter::start(4, move || factory.create());