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 | |
parent | 580ad2f11f50490c937eb3126ad320b94ddd6dc6 (diff) |
Move logger to use flexi_logger crate
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Cargo.toml | 25 | ||||
-rw-r--r-- | src/main.rs | 22 |
3 files changed, 34 insertions, 14 deletions
@@ -1,3 +1,4 @@ +/logs /target Cargo.lock config.toml @@ -5,16 +5,21 @@ name = "muar" version = "0.1.0" [dependencies] -anyhow = "1" -log = "0.4" -env_logger = "0.7" -mailparse.git = "https://git.sr.ht/~matthiasbeyer/mailparse" -cursive-tabs = "0.5" -cursive_table_view.git = "https://git.sr.ht/~matthiasbeyer/cursive_table_view" -notmuch = "0.6" -config = "0.10" -serde = { version = "1.0", features = ["derive"] } -chrono = "0.4" +anyhow = "1" +chrono = "0.4" +config = "0.10" +cursive-async-view = "0.4" +cursive-flexi-logger-view = { git = "https://github.com/deinstapel/cursive-flexi-logger-view/" } +cursive-tabs = "0.5" +cursive_table_view.git = "https://git.sr.ht/~matthiasbeyer/cursive_table_view" +env_logger = "0.7" +flexi_logger = "*" +handlebars = "3" +log = "0.4" +mailparse.git = "https://git.sr.ht/~matthiasbeyer/mailparse" +notmuch = "0.6" +serde = { version = "1.0", features = ["derive"] } +walkdir = "2" cursive = "0.15" 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(); |