File tree 2 files changed +25
-3
lines changed
2 files changed +25
-3
lines changed Original file line number Diff line number Diff line change @@ -1204,7 +1204,7 @@ pub trait Log: Sync + Send {
1204
1204
fn flush ( & self ) ;
1205
1205
}
1206
1206
1207
- // Just used as a dummy initial value for LOGGER
1207
+ /// A dummy initial value for LOGGER.
1208
1208
struct NopLogger ;
1209
1209
1210
1210
impl Log for NopLogger {
@@ -1216,6 +1216,28 @@ impl Log for NopLogger {
1216
1216
fn flush ( & self ) { }
1217
1217
}
1218
1218
1219
+ /// The global logger proxy.
1220
+ ///
1221
+ /// This zero-sized type implements the [`Log`] trait by forwarding calls
1222
+ /// to the logger registered with the `set_boxed_logger` or `set_logger`
1223
+ /// methods if there is one, or a nop logger as default.
1224
+ #[ derive( Copy , Clone , Default , Debug ) ]
1225
+ pub struct GlobalLogger ;
1226
+
1227
+ impl Log for GlobalLogger {
1228
+ fn enabled ( & self , metadata : & Metadata ) -> bool {
1229
+ logger ( ) . enabled ( metadata)
1230
+ }
1231
+
1232
+ fn log ( & self , record : & Record ) {
1233
+ logger ( ) . log ( record)
1234
+ }
1235
+
1236
+ fn flush ( & self ) {
1237
+ logger ( ) . flush ( )
1238
+ }
1239
+ }
1240
+
1219
1241
impl < T > Log for & ' _ T
1220
1242
where
1221
1243
T : ?Sized + Log ,
Original file line number Diff line number Diff line change @@ -67,7 +67,7 @@ macro_rules! log {
67
67
68
68
// log!(target: "my_target", Level::Info, "a log event")
69
69
( target: $target: expr, $lvl: expr, $( $arg: tt) +) => ( {
70
- $crate:: log!( logger: $crate:: logger ( ) , target: $target, $lvl, $( $arg) +)
70
+ $crate:: log!( logger: $crate:: GlobalLogger , target: $target, $lvl, $( $arg) +)
71
71
} ) ;
72
72
73
73
// log!(Level::Info, "a log event")
@@ -318,7 +318,7 @@ macro_rules! log_enabled {
318
318
} ) ;
319
319
320
320
( target: $target: expr, $lvl: expr) => ( {
321
- $crate:: log_enabled!( logger: $crate:: logger ( ) , target: $target, $lvl)
321
+ $crate:: log_enabled!( logger: $crate:: GlobalLogger , target: $target, $lvl)
322
322
} ) ;
323
323
324
324
( $lvl: expr) => ( {
You can’t perform that action at this time.
0 commit comments