Allow log threshold configuration.
[rapid-gossip-sync-server] / src / types.rs
index 1bb3821ccf66677689525ac952263c8002406fc2..0b03081f35814eda15182f110bcf96cbf9cc6993 100644 (file)
@@ -1,15 +1,16 @@
 use std::sync::Arc;
-use std::ops::Deref;
 
+use lightning::sign::KeysManager;
 use lightning::ln::msgs::{ChannelAnnouncement, ChannelUpdate};
 use lightning::ln::peer_handler::{ErroringMessageHandler, IgnoringMessageHandler, PeerManager};
 use lightning::util::logger::{Logger, Record};
+use crate::config;
 
 use crate::downloader::GossipRouter;
 use crate::verifier::ChainVerifier;
 
-pub(crate) type GossipChainAccess = Arc<ChainVerifier>;
-pub(crate) type GossipPeerManager = Arc<PeerManager<lightning_net_tokio::SocketDescriptor, ErroringMessageHandler, Arc<GossipRouter>, TestLogger, IgnoringMessageHandler>>;
+pub(crate) type GossipChainAccess<L> = Arc<ChainVerifier<L>>;
+pub(crate) type GossipPeerManager<L> = Arc<PeerManager<lightning_net_tokio::SocketDescriptor, ErroringMessageHandler, Arc<GossipRouter<L>>, IgnoringMessageHandler, L, IgnoringMessageHandler, Arc<KeysManager>>>;
 
 #[derive(Debug)]
 pub(crate) enum GossipMessage {
@@ -18,21 +19,20 @@ pub(crate) enum GossipMessage {
 }
 
 #[derive(Clone, Copy)]
-pub(crate) struct TestLogger {}
-impl Deref for TestLogger {
-       type Target = Self;
-       fn deref(&self) -> &Self { self }
-}
+pub struct RGSSLogger {}
 
-impl TestLogger {
-       pub(crate) fn new() -> TestLogger {
+impl RGSSLogger {
+       pub fn new() -> RGSSLogger {
                Self {}
        }
 }
 
-impl Logger for TestLogger {
+impl Logger for RGSSLogger {
        fn log(&self, record: &Record) {
-               // TODO: allow log level threshold to be set
+               let threshold = config::log_level();
+               if record.level < threshold {
+                       return;
+               }
                println!("{:<5} [{} : {}, {}] {}", record.level.to_string(), record.module_path, record.file, record.line, record.args);
        }
 }