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