diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-07-23 19:52:33 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-08-03 16:41:44 +0200 |
commit | bdeb6d82f81860ed836c7c40bcb3c4e2ba292f5b (patch) | |
tree | d2300ed610d8e9efa3d2f32bc1343126069dab2a /src | |
parent | 580ad2f11f50490c937eb3126ad320b94ddd6dc6 (diff) |
Move logger to use flexi_logger crate
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs index 37cf160..9ea680c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,8 +2,11 @@ #[macro_use] extern crate log; use anyhow::Result; +use cursive::Cursive; use cursive::CursiveExt; use cursive::event::{Event, EventTrigger}; +use cursive_flexi_logger_view::FlexiLoggerView; +use flexi_logger::{Logger, LogTarget}; mod main_view; mod maillist_view; @@ -13,22 +16,33 @@ mod util; use configuration::Configuration; fn main() -> Result<()> { - cursive::logger::init(); + let mut siv = cursive::Cursive::default(); + Logger::with_env_or_str("debug") + .log_target(LogTarget::FileAndWriter( + cursive_flexi_logger_view::cursive_flexi_logger(&siv), + )) + .directory("logs") + .suppress_timestamp() + .format(flexi_logger::colored_with_thread) + .start() + .expect("failed to initialize logger!"); + + debug!("Loading configuration"); let mut config = config::Config::default(); config .merge(config::File::with_name("config"))? .merge(config::Environment::with_prefix("MUAR"))?; let config = config.try_into::<Configuration>()?; - let mut siv = cursive::Cursive::default(); - + debug!("Setting triggers"); let event = Event::Char('q'); let trigger: EventTrigger = event.clone().into(); siv.set_on_post_event(trigger, |s| s.quit()); + debug!("Adding mainview"); siv.add_fullscreen_layer(main_view::MainView::new(config)?); - siv.add_global_callback('~', cursive::Cursive::toggle_debug_console); + siv.add_global_callback('~', |siv: &mut Cursive| siv.add_layer(FlexiLoggerView::scrollable())); debug!("Starting cursive"); siv.run(); |