Skip to content

Commit 2d55fc2

Browse files
author
Istvan Zolyomi
committed
Fix log level filtering in multilog environments
1 parent 242d909 commit 2d55fc2

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "egui_logger"
3-
version = "0.6.3"
3+
version = "0.7.0"
44
edition = "2021"
55
authors = ["Jacob <RegenJacob@gmx.de>"]
66
license = "MIT"

src/lib.rs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ const LEVELS: [log::Level; log::Level::Trace as usize] = [
2121
/// The logger for egui
2222
/// You might want to use [`builder()`] instead.
2323
/// To get a builder with default values.
24-
pub struct EguiLogger;
24+
pub struct EguiLogger {
25+
max_level: log::LevelFilter,
26+
}
27+
28+
impl EguiLogger {
29+
fn new(max_level: log::LevelFilter) -> Self {
30+
Self { max_level }
31+
}
32+
}
2533

2634
/// The builder for the logger.
2735
/// You can use [`builder()`] to get an instance of this.
@@ -42,7 +50,7 @@ impl Builder {
4250
/// Useful if you want to add it to a multi-logger.
4351
/// See [here](https://github.com/RegenJacob/egui_logger/blob/main/examples/multi_log.rs) for an example.
4452
pub fn build(self) -> EguiLogger {
45-
EguiLogger
53+
EguiLogger::new(self.max_level)
4654
}
4755

4856
/// Sets the max level for the logger
@@ -59,13 +67,14 @@ impl Builder {
5967
///
6068
/// The max level is the [max_level](Self::max_level) field.
6169
pub fn init(self) -> Result<(), SetLoggerError> {
62-
log::set_logger(&EguiLogger).map(|()| log::set_max_level(self.max_level))
70+
log::set_max_level(self.max_level);
71+
log::set_boxed_logger(Box::new(self.build()))
6372
}
6473
}
6574

6675
impl log::Log for EguiLogger {
6776
fn enabled(&self, metadata: &log::Metadata) -> bool {
68-
metadata.level() <= log::STATIC_MAX_LEVEL
77+
metadata.level() <= self.max_level
6978
}
7079

7180
fn log(&self, record: &log::Record) {

0 commit comments

Comments
 (0)