summaryrefslogtreecommitdiffstats
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
parent580ad2f11f50490c937eb3126ad320b94ddd6dc6 (diff)
Move logger to use flexi_logger crate
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--.gitignore1
-rw-r--r--Cargo.toml25
-rw-r--r--src/main.rs22
3 files changed, 34 insertions, 14 deletions
diff --git a/.gitignore b/.gitignore
index 92aef1e..0edd659 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+/logs
/target
Cargo.lock
config.toml
diff --git a/Cargo.toml b/Cargo.toml
index 618917d..4b7ffc4 100644
--- a/Cargo.toml
+++ b/Cargo.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();