aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEskil Queseth <eskilq@kth.se>2020-10-18 02:14:39 +0200
committerEskil Queseth <eskilq@kth.se>2020-10-18 02:14:39 +0200
commitcf25e7862e2b44c84e2c1bb0bfc3106c44d5aade (patch)
treebce9478a5b2a9bacf369ff57c3c536ce37ddcfff
parentf30b372d5c08d3c30c4b5ab02c11d236cac804e6 (diff)
parent2c87ed814f27ef8d58a4260be79710ed85c28bfe (diff)
downloadmum-cf25e7862e2b44c84e2c1bb0bfc3106c44d5aade.tar.gz
Merge remote-tracking branch 'origin/file-logging' into main
-rw-r--r--mumctl/src/main.rs2
-rw-r--r--mumd/src/main.rs2
-rw-r--r--mumlib/src/lib.rs28
3 files changed, 21 insertions, 11 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs
index 8237765..5b19309 100644
--- a/mumctl/src/main.rs
+++ b/mumctl/src/main.rs
@@ -17,7 +17,7 @@ macro_rules! err_print {
}
fn main() {
- setup_logger();
+ setup_logger(io::stderr(), true);
let mut app = App::new("mumctl")
.setting(AppSettings::ArgRequiredElseHelp)
diff --git a/mumd/src/main.rs b/mumd/src/main.rs
index 2973157..75726f8 100644
--- a/mumd/src/main.rs
+++ b/mumd/src/main.rs
@@ -21,7 +21,7 @@ use tokio::task::spawn_blocking;
#[tokio::main]
async fn main() {
- setup_logger();
+ setup_logger(std::io::stderr(), true);
// Oneshot channel for setting UDP CryptState from control task
// For simplicity we don't deal with re-syncing, real applications would have to.
diff --git a/mumlib/src/lib.rs b/mumlib/src/lib.rs
index 5a51f37..b26db13 100644
--- a/mumlib/src/lib.rs
+++ b/mumlib/src/lib.rs
@@ -7,19 +7,29 @@ use log::*;
pub const SOCKET_PATH: &str = "/var/tmp/mumd";
-pub fn setup_logger() {
+pub fn setup_logger<T: Into<fern::Output>>(target: T, color: bool) {
fern::Dispatch::new()
- .format(|out, message, record| {
+ .format(move |out, message, record| {
let message = message.to_string();
out.finish(format_args!(
"{} {}:{}{}{}",
//TODO runtime flag that disables color
- match record.level() {
- Level::Error => "ERROR".red(),
- Level::Warn => "WARN ".yellow(),
- Level::Info => "INFO ".normal(),
- Level::Debug => "DEBUG".green(),
- Level::Trace => "TRACE".normal(),
+ if color {
+ match record.level() {
+ Level::Error => "ERROR".red(),
+ Level::Warn => "WARN ".yellow(),
+ Level::Info => "INFO ".normal(),
+ Level::Debug => "DEBUG".green(),
+ Level::Trace => "TRACE".normal(),
+ }
+ } else {
+ match record.level() {
+ Level::Error => "ERROR",
+ Level::Warn => "WARN ",
+ Level::Info => "INFO ",
+ Level::Debug => "DEBUG",
+ Level::Trace => "TRACE",
+ }.normal()
},
record.file().unwrap(),
record.line().unwrap(),
@@ -32,7 +42,7 @@ pub fn setup_logger() {
))
})
.level(log::LevelFilter::Debug)
- .chain(std::io::stderr())
+ .chain(target.into())
.apply()
.unwrap();
}