summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-07-23 19:52:33 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-08-03 16:41:44 +0200
commitbdeb6d82f81860ed836c7c40bcb3c4e2ba292f5b (patch)
treed2300ed610d8e9efa3d2f32bc1343126069dab2a /src
parent580ad2f11f50490c937eb3126ad320b94ddd6dc6 (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.rs22
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();