Logging interface
[rust-lightning] / src / util / test_utils.rs
index 9646754f2d0097f51358cf5be9d86c8519acfcd4..b5fbbd5940924483545fb5d11c298658dc75feda 100644 (file)
@@ -5,6 +5,7 @@ use ln::channelmonitor;
 use ln::msgs;
 use ln::msgs::{HandleError};
 use util::events;
+use util::logger::{Logger, Level, Record};
 
 use bitcoin::blockdata::transaction::Transaction;
 
@@ -145,3 +146,26 @@ impl msgs::RoutingMessageHandler for TestRoutingMessageHandler {
        }
        fn handle_htlc_fail_channel_update(&self, _update: &msgs::HTLCFailChannelUpdate) {}
 }
+
+pub struct TestLogger {
+       level: Level,
+}
+
+impl TestLogger {
+       pub fn new() -> TestLogger {
+               TestLogger {
+                       level: Level::Off,
+               }
+       }
+       pub fn enable(&mut self, level: Level) {
+               self.level = level;
+       }
+}
+
+impl Logger for TestLogger {
+       fn log(&self, record: &Record) {
+               if self.level >= record.level {
+                       println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args);
+               }
+       }
+}