66// accordance with one or both of these licenses.
77
88use crate :: chain:: { ChainSource , DEFAULT_ESPLORA_SERVER_URL } ;
9- use crate :: config:: { default_user_config, Config , EsploraSyncConfig , WALLET_KEYS_SEED_LEN } ;
9+ use crate :: config:: {
10+ default_user_config, Config , EsploraSyncConfig , LoggingConfig , WALLET_KEYS_SEED_LEN ,
11+ } ;
1012
1113use crate :: connection:: ConnectionManager ;
1214use crate :: event:: EventQueue ;
@@ -16,7 +18,9 @@ use crate::io::sqlite_store::SqliteStore;
1618use crate :: io:: utils:: { read_node_metrics, write_node_metrics} ;
1719use crate :: io:: vss_store:: VssStore ;
1820use crate :: liquidity:: LiquiditySource ;
19- use crate :: logger:: { log_error, log_info, FilesystemLogger , Logger } ;
21+ use crate :: logger:: {
22+ default_format, log_error, log_info, FilesystemLogWriter , LdkNodeLogger , Logger ,
23+ } ;
2024use crate :: message_handler:: NodeCustomMessageHandler ;
2125use crate :: payment:: store:: PaymentStore ;
2226use crate :: peer_store:: PeerStore ;
@@ -27,8 +31,8 @@ use crate::types::{
2731} ;
2832use crate :: wallet:: persist:: KVStoreWalletPersister ;
2933use crate :: wallet:: Wallet ;
34+ use crate :: Node ;
3035use crate :: { io, NodeMetrics } ;
31- use crate :: { LogLevel , Node } ;
3236
3337use lightning:: chain:: { chainmonitor, BestBlock , Watch } ;
3438use lightning:: io:: Cursor ;
@@ -333,12 +337,6 @@ impl NodeBuilder {
333337 Ok ( self )
334338 }
335339
336- /// Sets the level at which [`Node`] will log messages.
337- pub fn set_log_level ( & mut self , level : LogLevel ) -> & mut Self {
338- self . config . log_level = level;
339- self
340- }
341-
342340 /// Builds a [`Node`] instance with a [`SqliteStore`] backend and according to the options
343341 /// previously configured.
344342 pub fn build ( & self ) -> Result < Node , BuildError > {
@@ -734,7 +732,7 @@ fn build_with_store_internal(
734732 config : Arc < Config > , chain_data_source_config : Option < & ChainDataSourceConfig > ,
735733 gossip_source_config : Option < & GossipSourceConfig > ,
736734 liquidity_source_config : Option < & LiquiditySourceConfig > , seed_bytes : [ u8 ; 64 ] ,
737- logger : Arc < FilesystemLogger > , kv_store : Arc < DynStore > ,
735+ logger : Arc < LdkNodeLogger > , kv_store : Arc < DynStore > ,
738736) -> Result < Node , BuildError > {
739737 // Initialize the status fields.
740738 let is_listening = Arc :: new ( AtomicBool :: new ( false ) ) ;
@@ -1233,21 +1231,27 @@ fn build_with_store_internal(
12331231
12341232/// Sets up the node logger, creating a new log file if it does not exist, or utilizing
12351233/// the existing log file.
1236- fn setup_logger ( config : & Config ) -> Result < Arc < FilesystemLogger > , BuildError > {
1237- let log_file_path = match & config. log_file_path {
1238- Some ( log_dir) => String :: from ( log_dir) ,
1239- None => format ! ( "{}/{}" , config. storage_dir_path. clone( ) , "ldk_node.log" ) ,
1240- } ;
1241-
1242- Ok ( Arc :: new (
1243- FilesystemLogger :: new ( log_file_path, config. log_level )
1244- . map_err ( |_| BuildError :: LoggerSetupFailed ) ?,
1245- ) )
1234+ fn setup_logger ( config : & Config ) -> Result < Arc < LdkNodeLogger > , BuildError > {
1235+ match config. logging_config {
1236+ LoggingConfig :: Custom ( ref logger) => Ok ( logger. clone ( ) ) ,
1237+ LoggingConfig :: Filesystem { ref log_dir, log_level } => {
1238+ let filesystem_log_writer = FilesystemLogWriter :: new ( log_dir. clone ( ) )
1239+ . map_err ( |_| BuildError :: LoggerSetupFailed ) ?;
1240+ Ok ( Arc :: new (
1241+ LdkNodeLogger :: new (
1242+ log_level,
1243+ Box :: new ( default_format) ,
1244+ Box :: new ( move |s| filesystem_log_writer. write ( s) ) ,
1245+ )
1246+ . map_err ( |_| BuildError :: LoggerSetupFailed ) ?,
1247+ ) )
1248+ } ,
1249+ }
12461250}
12471251
12481252fn seed_bytes_from_config (
12491253 config : & Config , entropy_source_config : Option < & EntropySourceConfig > ,
1250- logger : Arc < FilesystemLogger > ,
1254+ logger : Arc < LdkNodeLogger > ,
12511255) -> Result < [ u8 ; 64 ] , BuildError > {
12521256 match entropy_source_config {
12531257 Some ( EntropySourceConfig :: SeedBytes ( bytes) ) => Ok ( bytes. clone ( ) ) ,
@@ -1269,7 +1273,7 @@ fn seed_bytes_from_config(
12691273}
12701274
12711275fn derive_vss_xprv (
1272- config : Arc < Config > , seed_bytes : & [ u8 ; 64 ] , logger : Arc < FilesystemLogger > ,
1276+ config : Arc < Config > , seed_bytes : & [ u8 ; 64 ] , logger : Arc < LdkNodeLogger > ,
12731277) -> Result < Xpriv , BuildError > {
12741278 use bitcoin:: key:: Secp256k1 ;
12751279
0 commit comments