@@ -21,7 +21,15 @@ const LEVELS: [log::Level; log::Level::Trace as usize] = [
21
21
/// The logger for egui
22
22
/// You might want to use [`builder()`] instead.
23
23
/// 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
+ }
25
33
26
34
/// The builder for the logger.
27
35
/// You can use [`builder()`] to get an instance of this.
@@ -42,7 +50,7 @@ impl Builder {
42
50
/// Useful if you want to add it to a multi-logger.
43
51
/// See [here](https://github.com/RegenJacob/egui_logger/blob/main/examples/multi_log.rs) for an example.
44
52
pub fn build ( self ) -> EguiLogger {
45
- EguiLogger
53
+ EguiLogger :: new ( self . max_level )
46
54
}
47
55
48
56
/// Sets the max level for the logger
@@ -59,13 +67,14 @@ impl Builder {
59
67
///
60
68
/// The max level is the [max_level](Self::max_level) field.
61
69
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 ( ) ) )
63
72
}
64
73
}
65
74
66
75
impl log:: Log for EguiLogger {
67
76
fn enabled ( & self , metadata : & log:: Metadata ) -> bool {
68
- metadata. level ( ) <= log :: STATIC_MAX_LEVEL
77
+ metadata. level ( ) <= self . max_level
69
78
}
70
79
71
80
fn log ( & self , record : & log:: Record ) {
0 commit comments