1
- use lightning:: util:: logger:: { Logger , Record } ;
1
+ pub ( crate ) use lightning:: util:: logger:: Logger ;
2
+ use lightning:: util:: logger:: Record ;
2
3
use lightning:: util:: ser:: Writer ;
3
4
4
5
use chrono:: Utc ;
@@ -8,6 +9,7 @@ use std::fs;
8
9
pub ( crate ) struct FilesystemLogger {
9
10
data_dir : String ,
10
11
}
12
+
11
13
impl FilesystemLogger {
12
14
pub ( crate ) fn new ( data_dir : String ) -> Self {
13
15
let logs_path = format ! ( "{}/logs" , data_dir) ;
@@ -36,3 +38,77 @@ impl Logger for FilesystemLogger {
36
38
. unwrap ( ) ;
37
39
}
38
40
}
41
+
42
+
43
+ // TODO: We copied the logging macros for now from `lightning::util::macro_logger`. We should
44
+ // switch back to using them from upstream after the next release, which includes their export.
45
+ macro_rules! log_internal {
46
+ ( $logger: expr, $lvl: expr, $( $arg: tt) +) => (
47
+ $logger. log( & lightning:: util:: logger:: Record :: new( $lvl, format_args!( $( $arg) +) , module_path!( ) , file!( ) , line!( ) ) )
48
+ ) ;
49
+ }
50
+ pub ( crate ) use log_internal;
51
+
52
+ macro_rules! log_given_level {
53
+ ( $logger: expr, $lvl: expr, $( $arg: tt) +) => (
54
+ match $lvl {
55
+ #[ cfg( not( any( feature = "max_level_off" ) ) ) ]
56
+ lightning:: util:: logger:: Level :: Error => log_internal!( $logger, $lvl, $( $arg) * ) ,
57
+ #[ cfg( not( any( feature = "max_level_off" , feature = "max_level_error" ) ) ) ]
58
+ lightning:: util:: logger:: Level :: Warn => log_internal!( $logger, $lvl, $( $arg) * ) ,
59
+ #[ cfg( not( any( feature = "max_level_off" , feature = "max_level_error" , feature = "max_level_warn" ) ) ) ]
60
+ lightning:: util:: logger:: Level :: Info => log_internal!( $logger, $lvl, $( $arg) * ) ,
61
+ #[ cfg( not( any( feature = "max_level_off" , feature = "max_level_error" , feature = "max_level_warn" , feature = "max_level_info" ) ) ) ]
62
+ lightning:: util:: logger:: Level :: Debug => log_internal!( $logger, $lvl, $( $arg) * ) ,
63
+ #[ cfg( not( any( feature = "max_level_off" , feature = "max_level_error" , feature = "max_level_warn" , feature = "max_level_info" , feature = "max_level_debug" ) ) ) ]
64
+ lightning:: util:: logger:: Level :: Trace => log_internal!( $logger, $lvl, $( $arg) * ) ,
65
+ #[ cfg( not( any( feature = "max_level_off" , feature = "max_level_error" , feature = "max_level_warn" , feature = "max_level_info" , feature = "max_level_debug" , feature = "max_level_trace" ) ) ) ]
66
+ lightning:: util:: logger:: Level :: Gossip => log_internal!( $logger, $lvl, $( $arg) * ) ,
67
+
68
+ #[ cfg( any( feature = "max_level_off" , feature = "max_level_error" , feature = "max_level_warn" , feature = "max_level_info" , feature = "max_level_debug" , feature = "max_level_trace" ) ) ]
69
+ _ => {
70
+ // The level is disabled at compile-time
71
+ } ,
72
+ }
73
+ ) ;
74
+ }
75
+ pub ( crate ) use log_given_level;
76
+
77
+ #[ allow( unused_macros) ]
78
+ macro_rules! log_error {
79
+ ( $logger: expr, $( $arg: tt) * ) => (
80
+ log_given_level!( $logger, lightning:: util:: logger:: Level :: Error , $( $arg) * )
81
+ )
82
+ }
83
+ pub ( crate ) use log_error;
84
+
85
+ #[ allow( unused_macros) ]
86
+ macro_rules! log_warn {
87
+ ( $logger: expr, $( $arg: tt) * ) => (
88
+ log_given_level!( $logger, lightning:: util:: logger:: Level :: Warn , $( $arg) * )
89
+ )
90
+ }
91
+ pub ( crate ) use log_warn;
92
+
93
+ #[ allow( unused_macros) ]
94
+ macro_rules! log_info {
95
+ ( $logger: expr, $( $arg: tt) * ) => (
96
+ log_given_level!( $logger, lightning:: util:: logger:: Level :: Info , $( $arg) * )
97
+ )
98
+ }
99
+ pub ( crate ) use log_info;
100
+
101
+ #[ allow( unused_macros) ]
102
+ macro_rules! log_debug {
103
+ ( $logger: expr, $( $arg: tt) * ) => (
104
+ log_given_level!( $logger, lightning:: util:: logger:: Level :: Debug , $( $arg) * )
105
+ )
106
+ }
107
+
108
+ #[ allow( unused_macros) ]
109
+ macro_rules! log_trace {
110
+ ( $logger: expr, $( $arg: tt) * ) => (
111
+ log_given_level!( $logger, lightning:: util:: logger:: Level :: Trace , $( $arg) * )
112
+ )
113
+ }
114
+ pub ( crate ) use log_trace;
0 commit comments