diff --git a/Cargo.lock b/Cargo.lock index e3df6bb..690dbd1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1292,7 +1292,7 @@ dependencies = [ [[package]] name = "mylog" version = "0.1.0" -source = "git+https://github.com/scottlamb/mylog#00d39a9ca0c1f399c453360de3f1e7f61db0d50d" +source = "git+https://github.com/scottlamb/mylog#bebeacb74efc127f9c16e57e38886c8e6ba8a95c" dependencies = [ "chrono", "log", diff --git a/src/main.rs b/src/main.rs index 231d0e6..a3f6eda 100644 --- a/src/main.rs +++ b/src/main.rs @@ -31,6 +31,7 @@ #![cfg_attr(all(feature="nightly", test), feature(test))] use log::{error, info}; +use std::str::FromStr; use structopt::StructOpt; mod body; @@ -93,20 +94,12 @@ impl Args { } } -fn parse_fmt>(fmt: S) -> Option { - match fmt.as_ref() { - "google" => Some(mylog::Format::Google), - "google-systemd" => Some(mylog::Format::GoogleSystemd), - _ => None, - } -} - fn main() { let args = Args::from_args(); let mut h = mylog::Builder::new() .set_format(::std::env::var("MOONFIRE_FORMAT") - .ok() - .and_then(parse_fmt) + .map_err(|_| ()) + .and_then(|s| mylog::Format::from_str(&s)) .unwrap_or(mylog::Format::Google)) .set_spec(&::std::env::var("MOONFIRE_LOG").unwrap_or("info".to_owned())) .build();