From ae7271a479e6d44a1f02fdb6be12448f24dd2869 Mon Sep 17 00:00:00 2001 From: mars Date: Mon, 5 Dec 2022 21:53:38 -0700 Subject: [PATCH] Add logging macros to Magpie --- apps/magpie/src/main.rs | 1 + apps/magpie/src/protocol.rs | 2 -- apps/magpie/src/service/ipc.rs | 25 +++++++++++++------------ apps/magpie/src/service/window.rs | 8 ++++++-- 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/apps/magpie/src/main.rs b/apps/magpie/src/main.rs index cfbd810..f4af851 100644 --- a/apps/magpie/src/main.rs +++ b/apps/magpie/src/main.rs @@ -9,6 +9,7 @@ use window::{WindowMessage, WindowStore}; fn main() -> std::io::Result<()> { env_logger::init(); + log::info!("Initializing Magpie..."); let event_loop = EventLoopBuilder::::with_user_event().build(); let window_sender = event_loop.create_proxy(); let (ipc, ipc_sender) = Ipc::new(window_sender)?; diff --git a/apps/magpie/src/protocol.rs b/apps/magpie/src/protocol.rs index eacf451..5aedc03 100644 --- a/apps/magpie/src/protocol.rs +++ b/apps/magpie/src/protocol.rs @@ -63,7 +63,6 @@ pub type ClientMessenger = Messenger; impl ClientMessenger { pub fn send_panel_json(&mut self, id: PanelId, msg: &O) { let msg = serde_json::to_string(msg).unwrap(); - eprintln!("Sending message: {:?}", msg); let _ = self.send(&MagpieServerMsg::SendMessage(SendMessage { id, @@ -220,7 +219,6 @@ mod async_messages { impl ClientMessenger { pub async fn send_panel_json_async(&mut self, id: PanelId, msg: &O) { let msg = serde_json::to_string(msg).unwrap(); - eprintln!("Sending message: {:?}", msg); let _ = self .send_async(&MagpieServerMsg::SendMessage(SendMessage { diff --git a/apps/magpie/src/service/ipc.rs b/apps/magpie/src/service/ipc.rs index ad9dce2..0da73cb 100644 --- a/apps/magpie/src/service/ipc.rs +++ b/apps/magpie/src/service/ipc.rs @@ -47,7 +47,7 @@ impl Drop for Listener { fn drop(&mut self) { match std::fs::remove_file(&self.path) { Ok(_) => {} - Err(e) => eprintln!("Could not delete UnixListener {:?}", e), + Err(e) => log::error!("Could not delete UnixListener {:?}", e), } } } @@ -75,20 +75,20 @@ impl Listener { use std::io::{Error, ErrorKind}; match UnixStream::connect(&sock_path) { Ok(_) => { - eprintln!("Socket is already in use. Another instance of Magpie may be running."); + log::warn!("Socket is already in use. Another instance of Magpie may be running."); let kind = ErrorKind::AddrInUse; let error = Error::new(kind, "Socket is already in use."); return Err(error); } Err(ref err) if err.kind() == ErrorKind::ConnectionRefused => { - eprintln!("Found leftover socket; removing."); + log::warn!("Found leftover socket; removing."); std::fs::remove_file(&sock_path)?; } Err(ref err) if err.kind() == ErrorKind::NotFound => {} Err(err) => return Err(err), } - eprintln!("Making socket at: {:?}", sock_path); + log::info!("Making socket at: {:?}", sock_path); let uds = UnixListener::bind(&sock_path)?; let path = sock_path.to_path_buf(); Ok(Self { uds, path }) @@ -120,11 +120,11 @@ pub struct Client { impl Client { pub fn on_readable(&mut self) -> std::io::Result { if let Err(err) = self.messenger.flush_recv() { - eprintln!("flush_recv() error: {:?}", err); + log::error!("flush_recv() error: {:?}", err); } while let Some(msg) = self.messenger.try_recv() { - println!("Client #{}: {:?}", self.token.0, msg); + log::debug!("Client #{}: {:?}", self.token.0, msg); match msg { MagpieServerMsg::CreatePanel(CreatePanel { id, @@ -162,7 +162,7 @@ impl Client { } pub fn disconnect(mut self) { - println!("Client #{} disconnected", self.token.0); + log::info!("Client #{} disconnected", self.token.0); let mut transport = self.messenger.into_transport(); let mut data = self.data.write(); @@ -262,9 +262,10 @@ impl Ipc { match self.listener.accept() { Ok((mut connection, address)) => { let token = Token(self.clients.vacant_key()); - println!( + log::info!( "Accepting connection (Client #{}) from {:?}", - token.0, address + token.0, + address ); let interest = Interest::READABLE; @@ -288,7 +289,7 @@ impl Ipc { } } else if event.token() == self.signals_token { while let Some(received) = self.signals.receive()? { - eprintln!("Received {:?} signal; exiting...", received); + log::info!("Received {:?} signal; exiting...", received); let _ = self.window_sender.send_event(WindowMessage::Quit); self.quit = true; } @@ -302,7 +303,7 @@ impl Ipc { self.clients.remove(event.token().0).disconnect(); } } else { - eprintln!("Unrecognized event token: {:?}", event); + log::error!("Unrecognized event token: {:?}", event); } } @@ -316,7 +317,7 @@ impl Ipc { match self.poll(&mut events, Some(wait)) { Ok(_) => {} Err(e) => { - eprintln!("IPC poll error: {:?}", e); + log::error!("IPC poll error: {:?}", e); } } } diff --git a/apps/magpie/src/service/window.rs b/apps/magpie/src/service/window.rs index fd41d39..0e9229e 100644 --- a/apps/magpie/src/service/window.rs +++ b/apps/magpie/src/service/window.rs @@ -195,14 +195,18 @@ impl WindowStore { protocol, script, } => { - println!("Opening window {} with script {:?}", id, script); + log::debug!("Opening window {} with script {:?}...", id, script); + let start = std::time::Instant::now(); let module = std::fs::read(script)?; let mut script = self.runtime.load_module(&module)?; + log::debug!("Instantiated window {} script in {:?}", id, start.elapsed()); let panel = script.create_panel(&protocol, vec![])?; + log::debug!("Created window {} panel in {:?}", id, start.elapsed()); let window = Window::new(self.ipc_sender.to_owned(), id, panel, &event_loop)?; let window_id = window.get_id(); self.windows.insert(window_id, window); self.ipc_to_window.insert(id, window_id); + log::debug!("Opened window {} in {:?}", id, start.elapsed()); } WindowMessage::CloseWindow { id } => { if let Some(window_id) = self.ipc_to_window.remove(&id) { @@ -242,7 +246,7 @@ impl WindowStore { Ok(false) => {} Ok(true) => *control_flow = ControlFlow::Exit, Err(err) => { - eprintln!("Error while handling message {:?}:\n{}", event, err); + log::error!("Error while handling message {:?}:\n{}", event, err); } }, _ => {}