use cursive's debug logger + DebugView
This commit is contained in:
@@ -14,7 +14,6 @@ maintenance = { status = "experimental" }
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
crossbeam-channel = "0.3.8"
|
crossbeam-channel = "0.3.8"
|
||||||
env_logger = "0.6.0"
|
|
||||||
failure = "0.1.3"
|
failure = "0.1.3"
|
||||||
futures = "0.1"
|
futures = "0.1"
|
||||||
log = "0.4.0"
|
log = "0.4.0"
|
||||||
|
|||||||
37
src/main.rs
37
src/main.rs
@@ -21,11 +21,8 @@ extern crate toml;
|
|||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate log;
|
extern crate log;
|
||||||
extern crate env_logger;
|
|
||||||
|
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::fs::OpenOptions;
|
|
||||||
use std::io::prelude::*;
|
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
use std::process;
|
use std::process;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
@@ -55,33 +52,9 @@ use events::{Event, EventManager};
|
|||||||
use playlists::Playlists;
|
use playlists::Playlists;
|
||||||
use spotify::PlayerEvent;
|
use spotify::PlayerEvent;
|
||||||
|
|
||||||
fn init_logger(content: TextContent, write_to_file: bool) {
|
|
||||||
let mut builder = env_logger::Builder::from_default_env();
|
|
||||||
{
|
|
||||||
builder
|
|
||||||
.format(move |_, record| {
|
|
||||||
let mut buffer = content.clone();
|
|
||||||
let line = format!("[{}] {}\n", record.level(), record.args());
|
|
||||||
buffer.append(line.clone());
|
|
||||||
|
|
||||||
if write_to_file {
|
|
||||||
let mut file = OpenOptions::new()
|
|
||||||
.create(true)
|
|
||||||
.write(true)
|
|
||||||
.append(true)
|
|
||||||
.open("ncspot.log")
|
|
||||||
.unwrap();
|
|
||||||
if let Err(e) = writeln!(file, "{}", line) {
|
|
||||||
eprintln!("Couldn't write to file: {}", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Ok(())
|
|
||||||
})
|
|
||||||
.init();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
cursive::logger::init();
|
||||||
|
|
||||||
// Things here may cause the process to abort; we must do them before creating curses windows
|
// Things here may cause the process to abort; we must do them before creating curses windows
|
||||||
// otherwise the error message will not be seen by a user
|
// otherwise the error message will not be seen by a user
|
||||||
let path = match env::var_os("HOME") {
|
let path = match env::var_os("HOME") {
|
||||||
@@ -107,9 +80,7 @@ fn main() {
|
|||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
||||||
let logbuf = TextContent::new("Welcome to ncspot\n");
|
let logview = DebugView::new();
|
||||||
let logview = TextView::new_with_content(logbuf.clone());
|
|
||||||
init_logger(logbuf, true);
|
|
||||||
|
|
||||||
let mut cursive = Cursive::default();
|
let mut cursive = Cursive::default();
|
||||||
cursive.set_theme(theme::default());
|
cursive.set_theme(theme::default());
|
||||||
@@ -157,7 +128,7 @@ fn main() {
|
|||||||
|
|
||||||
let mut layout = ui::layout::Layout::new(status, &event_manager)
|
let mut layout = ui::layout::Layout::new(status, &event_manager)
|
||||||
.view("search", search.with_id("search"), "Search")
|
.view("search", search.with_id("search"), "Search")
|
||||||
.view("log", logview_scroller, "Log")
|
.view("log", logview_scroller, "Debug Log")
|
||||||
.view("playlists", playlistsview, "Playlists")
|
.view("playlists", playlistsview, "Playlists")
|
||||||
.view("queue", queueview, "Queue");
|
.view("queue", queueview, "Queue");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user