Expose log_bytes! macro for use in other crates
authorJeffrey Czyz <jkczyz@gmail.com>
Tue, 24 Aug 2021 04:55:28 +0000 (23:55 -0500)
committerJeffrey Czyz <jkczyz@gmail.com>
Tue, 26 Oct 2021 06:12:30 +0000 (01:12 -0500)
Needed to log PaymentHash in the lightning-invoice crate when retrying
payments.

lightning/src/util/logger.rs
lightning/src/util/macro_logger.rs

index b34d1f0b782d8618756edc28e3d4a4791be0779f..01b024065b29240284f507fd4bb3f9501641fecb 100644 (file)
@@ -120,6 +120,18 @@ pub trait Logger {
        fn log(&self, record: &Record);
 }
 
+/// Wrapper for logging byte slices in hex format.
+#[doc(hidden)]
+pub 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(())
+       }
+}
+
 #[cfg(test)]
 mod tests {
        use util::logger::{Logger, Level};
index d7849d77ae0b970796208ca7a52f726671047c26..788bc5eca11cc1de9e28cee1d6a64bcbe4419219 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)
        }
 }
 
@@ -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)+) => (