diff options
| -rw-r--r-- | mumctl/src/main.rs | 4 | ||||
| -rw-r--r-- | mumd/src/main.rs | 4 | ||||
| -rw-r--r-- | mumlib/src/lib.rs | 30 |
3 files changed, 25 insertions, 13 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs index 4443f46..f4b8139 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) @@ -159,7 +159,7 @@ fn send_command(command: Command) -> mumlib::error::Result<Option<CommandRespons let (tx_client, rx_client) = ipc::channel::<mumlib::error::Result<Option<CommandResponse>>>().unwrap(); - let server_name = fs::read_to_string("/var/tmp/mumd-oneshot").unwrap(); //TODO don't panic + let server_name = fs::read_to_string(mumlib::SOCKET_PATH).unwrap(); //TODO don't panic let tx0 = IpcSender::connect(server_name).unwrap(); diff --git a/mumd/src/main.rs b/mumd/src/main.rs index 5ae077a..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. @@ -73,7 +73,7 @@ fn receive_oneshot_commands( )>, String, ) = IpcOneShotServer::new().unwrap(); - fs::write("/var/tmp/mumd-oneshot", &server_name).unwrap(); + fs::write(mumlib::SOCKET_PATH, &server_name).unwrap(); debug!("Listening to {}", server_name); // receive command and response channel diff --git a/mumlib/src/lib.rs b/mumlib/src/lib.rs index d989a7e..b26db13 100644 --- a/mumlib/src/lib.rs +++ b/mumlib/src/lib.rs @@ -5,19 +5,31 @@ pub mod state; use colored::*; use log::*; -pub fn setup_logger() { +pub const SOCKET_PATH: &str = "/var/tmp/mumd"; + +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(), @@ -30,7 +42,7 @@ pub fn setup_logger() { )) }) .level(log::LevelFilter::Debug) - .chain(std::io::stderr()) + .chain(target.into()) .apply() .unwrap(); } |
