X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Futil%2Flogger.rs;h=f8fc1eda1080e6bf3ad3aed723ac553d6bf5daa3;hb=e62bd9d137e8e82ad38b820c7bd34b229b241fe9;hp=103f89891cf30115c238f0a9494379c8e6719169;hpb=ba50dd57868a78d00ed1a3c7a9089cf39d3ca235;p=rust-lightning diff --git a/lightning/src/util/logger.rs b/lightning/src/util/logger.rs index 103f8989..f8fc1eda 100644 --- a/lightning/src/util/logger.rs +++ b/lightning/src/util/logger.rs @@ -86,32 +86,45 @@ impl Level { /// A Record, unit of logging output with Metadata to enable filtering /// Module_path, file, line to inform on log's source -/// (C-not exported) - we convert to a const char* instead -#[derive(Clone,Debug)] +#[derive(Clone, Debug)] pub struct Record<'a> { /// The verbosity level of the message. pub level: Level, + #[cfg(not(c_bindings))] /// The message body. pub args: fmt::Arguments<'a>, + #[cfg(c_bindings)] + /// The message body. + pub args: String, /// The module path of the message. - pub module_path: &'a str, + pub module_path: &'static str, /// The source file containing the message. - pub file: &'a str, + pub file: &'static str, /// The line containing the message. pub line: u32, + + #[cfg(c_bindings)] + /// We don't actually use the lifetime parameter in C bindings (as there is no good way to + /// communicate a lifetime to a C, or worse, Java user). + _phantom: core::marker::PhantomData<&'a ()>, } impl<'a> Record<'a> { /// Returns a new Record. /// (C-not exported) as fmt can't be used in C #[inline] - pub fn new(level: Level, args: fmt::Arguments<'a>, module_path: &'a str, file: &'a str, line: u32) -> Record<'a> { + pub fn new(level: Level, args: fmt::Arguments<'a>, module_path: &'static str, file: &'static str, line: u32) -> Record<'a> { Record { level, + #[cfg(not(c_bindings))] args, + #[cfg(c_bindings)] + args: format!("{}", args), module_path, file, - line + line, + #[cfg(c_bindings)] + _phantom: core::marker::PhantomData, } } }