Skip to content

Commit 02486e4

Browse files
committed
fill in more tests for logger argument
1 parent 71e034f commit 02486e4

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

src/__private_api.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,7 @@ impl<'a> KVs<'a> for () {
3535
// Log implementation.
3636

3737
/// The global logger proxy.
38-
///
39-
/// This zero-sized type implements the [`Log`] trait by forwarding calls
40-
/// to the logger registered with the `set_boxed_logger` or `set_logger`
41-
/// methods if there is one, or a nop logger as default.
42-
#[derive(Copy, Clone, Default, Debug)]
38+
#[derive(Debug)]
4339
pub struct GlobalLogger;
4440

4541
impl Log for GlobalLogger {
@@ -56,6 +52,7 @@ impl Log for GlobalLogger {
5652
}
5753
}
5854

55+
// Split from `log` to reduce generics and code size
5956
fn log_impl<L: Log>(
6057
logger: L,
6158
args: Arguments,

src/macros.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,17 @@
5858
///
5959
/// let my_logger = MyLogger {};
6060
/// log!(
61-
/// logger: &my_logger,
61+
/// logger: my_logger,
6262
/// Level::Error,
6363
/// "Received errors: {}, {}",
6464
/// data.0, data.1
6565
/// );
66+
///
67+
/// The `logger` argument accepts a value that implements the `Log` trait. The value
68+
/// will be borrowed within the macro.
69+
///
70+
/// Note that the global level set via Cargo features, or through `set_max_level` will
71+
/// still apply, even when a custom logger is supplied with the `logger` argument.
6672
#[macro_export]
6773
#[clippy::format_args]
6874
macro_rules! log {
@@ -378,6 +384,8 @@ macro_rules! trace {
378384
/// debug!(target: "Global", "expensive debug data: {} {}", data.x, data.y);
379385
/// }
380386
/// ```
387+
///
388+
/// This macro accepts the same `target` and `logger` arguments as [`macro@log`].
381389
#[macro_export]
382390
macro_rules! log_enabled {
383391
// log_enabled!(logger: my_logger, target: "my_target", Level::Info)

tests/integration.rs

-8
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,6 @@
33
use log::{debug, error, info, trace, warn, Level, LevelFilter, Log, Metadata, Record};
44
use std::sync::{Arc, Mutex};
55

6-
#[cfg(feature = "std")]
7-
use log::set_boxed_logger;
8-
9-
#[cfg(not(feature = "std"))]
10-
fn set_boxed_logger(logger: Box<dyn Log>) -> Result<(), log::SetLoggerError> {
11-
log::set_logger(Box::leak(logger))
12-
}
13-
146
struct State {
157
last_log_level: Mutex<Option<Level>>,
168
last_log_location: Mutex<Option<u32>>,

0 commit comments

Comments
 (0)