Merge pull request #1219 from TheBlueMatt/2021-12-0.0.104-bindings
[rust-lightning] / lightning / src / util / macro_logger.rs
index 3ac294fbff9097686d4d28df669bcab76c402f5e..2dd73d8279cff447576817450601c85112adce74 100644 (file)
@@ -16,6 +16,7 @@ use bitcoin::secp256k1::key::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)
        }
 }
 
@@ -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,10 +151,11 @@ 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)+) => (
-               $logger.log(&$crate::util::logger::Record::new($lvl, format_args!($($arg)+), module_path!(), file!(), line!()));
+               $logger.log(&$crate::util::logger::Record::new($lvl, format_args!($($arg)+), module_path!(), file!(), line!()))
        );
 }
 
@@ -179,8 +174,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
                        },
@@ -218,6 +215,13 @@ macro_rules! log_debug {
 #[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 a gossip log.
+macro_rules! log_gossip {
+       ($logger: expr, $($arg:tt)*) => (
+               log_given_level!($logger, $crate::util::logger::Level::Gossip, $($arg)*);
        )
 }