@@ -42,7 +42,7 @@ use crate::sign::{EntropySource, ChannelSigner, SignerProvider, NodeSigner, Reci
4242use crate::events::ClosureReason;
4343use crate::routing::gossip::NodeId;
4444use crate::util::ser::{Readable, ReadableArgs, Writeable, Writer};
45- use crate::util::logger::{Logger, WithContext};
45+ use crate::util::logger::{Logger, Record, WithContext};
4646use crate::util::errors::APIError;
4747use crate::util::config::{UserConfig, ChannelConfig, LegacyChannelConfig, ChannelHandshakeConfig, ChannelHandshakeLimits, MaxDustHTLCExposure};
4848use crate::util::scid_utils::scid_from_parts;
@@ -414,6 +414,33 @@ impl fmt::Display for ChannelError {
414414 }
415415}
416416
417+ pub(super) struct WithChannelContext<'a, L: Deref> where L::Target: Logger {
418+ pub logger: &'a L,
419+ pub peer_id: Option<PublicKey>,
420+ pub channel_id: Option<ChannelId>,
421+ }
422+
423+ impl<'a, L: Deref> Logger for WithChannelContext<'a, L> where L::Target: Logger {
424+ fn log(&self, mut record: Record) {
425+ record.peer_id = self.peer_id;
426+ record.channel_id = self.channel_id;
427+ self.logger.log(record)
428+ }
429+ }
430+
431+ impl<'a, 'b, L: Deref> WithChannelContext<'a, L>
432+ where L::Target: Logger {
433+ pub(super) fn from<S: Deref>(logger: &'a L, context: &'b ChannelContext<S>) -> Self
434+ where S::Target: SignerProvider
435+ {
436+ WithChannelContext {
437+ logger,
438+ peer_id: Some(context.counterparty_node_id),
439+ channel_id: Some(context.channel_id),
440+ }
441+ }
442+ }
443+
417444macro_rules! secp_check {
418445 ($res: expr, $err: expr) => {
419446 match $res {
0 commit comments