Merge pull request #1688 from valentinewallace/2022-08-flip-om-feature-bit
[rust-lightning] / lightning / src / util / macro_logger.rs
index 9644411bc147310b51a506e9a6634adcdb98bfc3..cd79a3f7bba8b3d500bf7036c1a202e4d6f2cd71 100644 (file)
@@ -12,10 +12,11 @@ use chain::keysinterface::SpendableOutputDescriptor;
 
 use bitcoin::hash_types::Txid;
 use bitcoin::blockdata::transaction::Transaction;
-use bitcoin::secp256k1::key::PublicKey;
+use bitcoin::secp256k1::PublicKey;
 
 use routing::router::Route;
 use ln::chan_utils::HTLCType;
+use util::logger::DebugBytes;
 
 pub(crate) struct DebugPubKey<'a>(pub &'a PublicKey);
 impl<'a> core::fmt::Display for DebugPubKey<'a> {
@@ -32,18 +33,11 @@ macro_rules! log_pubkey {
        }
 }
 
-pub(crate) struct DebugBytes<'a>(pub &'a [u8]);
-impl<'a> core::fmt::Display for DebugBytes<'a> {
-       fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> {
-               for i in self.0 {
-                       write!(f, "{:02x}", i)?;
-               }
-               Ok(())
-       }
-}
+/// Logs a byte slice in hex format.
+#[macro_export]
 macro_rules! log_bytes {
        ($obj: expr) => {
-               ::util::macro_logger::DebugBytes(&$obj)
+               $crate::util::logger::DebugBytes(&$obj)
        }
 }
 
@@ -97,7 +91,7 @@ impl<'a> core::fmt::Display for DebugTx<'a> {
        fn fmt(&self, f: &mut core::fmt::Formatter) -> Result<(), core::fmt::Error> {
                if self.0.input.len() >= 1 && self.0.input.iter().any(|i| !i.witness.is_empty()) {
                        if self.0.input.len() == 1 && self.0.input[0].witness.last().unwrap().len() == 71 &&
-                                       (self.0.input[0].sequence >> 8*3) as u8 == 0x80 {
+                                       (self.0.input[0].sequence.0 >> 8*3) as u8 == 0x80 {
                                write!(f, "commitment tx ")?;
                        } else if self.0.input.len() == 1 && self.0.input[0].witness.last().unwrap().len() == 71 {
                                write!(f, "closing tx ")?;
@@ -142,7 +136,7 @@ impl<'a> core::fmt::Display for DebugSpendable<'a> {
                                write!(f, "DelayedPaymentOutput {}:{} marked for spending", descriptor.outpoint.txid, descriptor.outpoint.index)?;
                        }
                        &SpendableOutputDescriptor::StaticPaymentOutput(ref descriptor) => {
-                               write!(f, "DynamicOutputP2WPKH {}:{} marked for spending", descriptor.outpoint.txid, descriptor.outpoint.index)?;
+                               write!(f, "StaticPaymentOutput {}:{} marked for spending", descriptor.outpoint.txid, descriptor.outpoint.index)?;
                        }
                }
                Ok(())
@@ -157,6 +151,7 @@ macro_rules! log_spendable {
 
 /// Create a new Record and log it. You probably don't want to use this macro directly,
 /// but it needs to be exported so `log_trace` etc can use it in external crates.
+#[doc(hidden)]
 #[macro_export]
 macro_rules! log_internal {
        ($logger: expr, $lvl:expr, $($arg:tt)+) => (
@@ -165,6 +160,7 @@ macro_rules! log_internal {
 }
 
 /// Logs an entry at the given level.
+#[doc(hidden)]
 #[macro_export]
 macro_rules! log_given_level {
        ($logger: expr, $lvl:expr, $($arg:tt)+) => (
@@ -179,8 +175,10 @@ macro_rules! log_given_level {
                        $crate::util::logger::Level::Debug => log_internal!($logger, $lvl, $($arg)*),
                        #[cfg(not(any(feature = "max_level_off", feature = "max_level_error", feature = "max_level_warn", feature = "max_level_info", feature = "max_level_debug")))]
                        $crate::util::logger::Level::Trace => log_internal!($logger, $lvl, $($arg)*),
+                       #[cfg(not(any(feature = "max_level_off", feature = "max_level_error", feature = "max_level_warn", feature = "max_level_info", feature = "max_level_debug", feature = "max_level_trace")))]
+                       $crate::util::logger::Level::Gossip => log_internal!($logger, $lvl, $($arg)*),
 
-                       #[cfg(any(feature = "max_level_off", feature = "max_level_error", feature = "max_level_warn", feature = "max_level_info", feature = "max_level_debug"))]
+                       #[cfg(any(feature = "max_level_off", feature = "max_level_error", feature = "max_level_warn", feature = "max_level_info", feature = "max_level_debug", feature = "max_level_trace"))]
                        _ => {
                                // The level is disabled at compile-time
                        },
@@ -188,7 +186,7 @@ macro_rules! log_given_level {
        );
 }
 
-/// Log an error.
+/// Log at the `ERROR` level.
 #[macro_export]
 macro_rules! log_error {
        ($logger: expr, $($arg:tt)*) => (
@@ -196,28 +194,42 @@ macro_rules! log_error {
        )
 }
 
+/// Log at the `WARN` level.
+#[macro_export]
 macro_rules! log_warn {
        ($logger: expr, $($arg:tt)*) => (
                log_given_level!($logger, $crate::util::logger::Level::Warn, $($arg)*);
        )
 }
 
+/// Log at the `INFO` level.
+#[macro_export]
 macro_rules! log_info {
        ($logger: expr, $($arg:tt)*) => (
                log_given_level!($logger, $crate::util::logger::Level::Info, $($arg)*);
        )
 }
 
+/// Log at the `DEBUG` level.
+#[macro_export]
 macro_rules! log_debug {
        ($logger: expr, $($arg:tt)*) => (
                log_given_level!($logger, $crate::util::logger::Level::Debug, $($arg)*);
        )
 }
 
-/// Log a trace log.
+/// Log at the `TRACE` level.
 #[macro_export]
 macro_rules! log_trace {
        ($logger: expr, $($arg:tt)*) => (
-               log_given_level!($logger, $crate::util::logger::Level::Trace, $($arg)*);
+               log_given_level!($logger, $crate::util::logger::Level::Trace, $($arg)*)
+       )
+}
+
+/// Log at the `GOSSIP` level.
+#[macro_export]
+macro_rules! log_gossip {
+       ($logger: expr, $($arg:tt)*) => (
+               log_given_level!($logger, $crate::util::logger::Level::Gossip, $($arg)*);
        )
 }