From ae1cb963857cafd03e0bd517be74cc11b4e52b51 Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Tue, 20 Nov 2018 23:15:51 +0100 Subject: [PATCH] implement thread-safe logging to a vector of strings this can later be used for a "log window" --- src/main.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 3c42c88..1acc555 100644 --- a/src/main.rs +++ b/src/main.rs @@ -20,6 +20,7 @@ use std::io; use std::io::prelude::*; use std::path::PathBuf; use std::process; +use std::sync::{Arc, Mutex}; use cursive::views::*; use cursive::CbFunc; @@ -42,8 +43,17 @@ impl () + Send> CbSpotify for F { } fn main() { + let loglines = Arc::new(Mutex::new(Vec::new())); std::env::set_var("RUST_LOG", "ncspot=trace"); - env_logger::init(); + let mut builder = env_logger::Builder::from_default_env(); + { + let mut loglines = loglines.clone(); + builder.format(move |buf, record| { + let mut lines = loglines.lock().unwrap(); + lines.push(format!("[{}] {}", record.level(), record.args())); + Ok(()) + }).init(); + } // let mut cursive = Cursive::default(); // cursive.add_global_callback('q', |s| s.quit());