node: Reduce log messages when sending messages

This commit is contained in:
Alexis Sellier 2023-04-19 17:25:12 +02:00
parent 9120db4ddb
commit 26ee6d26dc
No known key found for this signature in database
3 changed files with 23 additions and 16 deletions

View File

@ -1062,7 +1062,7 @@ where
return Ok(()); return Ok(());
}; };
peer.last_active = self.clock; peer.last_active = self.clock;
message.log(log::Level::Debug, remote); message.log(log::Level::Debug, remote, Link::Inbound);
trace!(target: "service", "Received message {:?} from {}", &message, peer.id); trace!(target: "service", "Received message {:?} from {}", &message, peer.id);

View File

@ -7,7 +7,7 @@ use crate::node;
use crate::node::Address; use crate::node::Address;
use crate::prelude::BoundedVec; use crate::prelude::BoundedVec;
use crate::service::filter::Filter; use crate::service::filter::Filter;
use crate::service::{NodeId, Timestamp}; use crate::service::{Link, NodeId, Timestamp};
use crate::storage; use crate::storage;
use crate::storage::refs::SignedRefs; use crate::storage::refs::SignedRefs;
use crate::storage::{ReadRepository, ReadStorage}; use crate::storage::{ReadRepository, ReadStorage};
@ -408,33 +408,36 @@ impl Message {
}) })
} }
pub fn log(&self, level: log::Level, remote: &NodeId) { pub fn log(&self, level: log::Level, remote: &NodeId, link: Link) {
if !log::log_enabled!(level) { if !log::log_enabled!(level) {
return; return;
} }
let (verb, prep) = if link.is_inbound() {
("Received", "from")
} else {
("Sending", "to")
};
let msg = match self { let msg = match self {
Self::Announcement(Announcement { node, message, .. }) => match message { Self::Announcement(Announcement { node, message, .. }) => match message {
AnnouncementMessage::Node(NodeAnnouncement { addresses, .. }) => format!( AnnouncementMessage::Node(NodeAnnouncement { addresses, .. }) => format!(
"Node announced by {node} with {} addresses, relayed by {remote}", "{verb} node announcement of {node} with {} addresses {prep} {remote}",
addresses.len() addresses.len()
), ),
AnnouncementMessage::Refs(RefsAnnouncement { rid, refs, .. }) => { AnnouncementMessage::Refs(RefsAnnouncement { rid, refs, .. }) => format!(
format!( "{verb} refs announcement of {node} for {rid} with {} remotes {prep} {remote}",
"Refs announced by {node} for {rid} with {} remotes, relayed by {remote}", refs.len()
refs.len() ),
)
}
AnnouncementMessage::Inventory(InventoryAnnouncement { inventory, .. }) => { AnnouncementMessage::Inventory(InventoryAnnouncement { inventory, .. }) => {
format!( format!(
"Inventory announced by {node} with {} item(s), relayed by {remote}", "{verb} inventory announcement of {node} with {} item(s) {prep} {remote}",
inventory.len() inventory.len()
) )
} }
}, },
Self::Ping { .. } => format!("Ping received from {remote}"), Self::Ping { .. } => format!("{verb} ping {prep} {remote}"),
Self::Pong { .. } => format!("Pong received from {remote}"), Self::Pong { .. } => format!("{verb} pong {prep} {remote}"),
Self::Subscribe(Subscribe { .. }) => { Self::Subscribe(Subscribe { .. }) => {
format!("Subscription filter received from {remote}") format!("{verb} subscription filter {prep} {remote}")
} }
}; };
log::log!(target: "service", level, "{msg}"); log::log!(target: "service", level, "{msg}");

View File

@ -4,6 +4,7 @@ use log::*;
use crate::prelude::*; use crate::prelude::*;
use crate::service::session::Session; use crate::service::session::Session;
use crate::service::Link;
use crate::storage::Namespaces; use crate::storage::Namespaces;
use super::message::{Announcement, AnnouncementMessage}; use super::message::{Announcement, AnnouncementMessage};
@ -49,7 +50,9 @@ impl Reactor {
} }
pub fn write(&mut self, remote: &Session, msg: Message) { pub fn write(&mut self, remote: &Session, msg: Message) {
debug!(target: "service", "Write {:?} to {}", &msg, remote); msg.log(log::Level::Debug, &remote.id, Link::Outbound);
trace!(target: "service", "Write {:?} to {}", &msg, remote);
self.io.push_back(Io::Write(remote.id, vec![msg])); self.io.push_back(Io::Write(remote.id, vec![msg]));
} }
@ -57,7 +60,7 @@ impl Reactor {
let msgs = msgs.into_iter().collect::<Vec<_>>(); let msgs = msgs.into_iter().collect::<Vec<_>>();
for (ix, msg) in msgs.iter().enumerate() { for (ix, msg) in msgs.iter().enumerate() {
debug!( trace!(
target: "service", target: "service",
"Write {:?} to {} ({}/{})", "Write {:?} to {} ({}/{})",
msg, msg,
@ -65,6 +68,7 @@ impl Reactor {
ix + 1, ix + 1,
msgs.len() msgs.len()
); );
msg.log(log::Level::Debug, &remote.id, Link::Outbound);
} }
self.io.push_back(Io::Write(remote.id, msgs)); self.io.push_back(Io::Write(remote.id, msgs));
} }