@@ -54,7 +54,7 @@ static mut SYSTEM_TABLE: Option<SystemTable<Boot>> = None;
54
54
55
55
/// Global logger object
56
56
#[ cfg( feature = "logger" ) ]
57
- static mut LOGGER : Option < uefi:: logger:: Logger > = None ;
57
+ static LOGGER : uefi:: logger:: Logger = uefi :: logger :: Logger :: new ( ) ;
58
58
59
59
/// Obtains a pointer to the system table.
60
60
///
@@ -161,19 +161,11 @@ macro_rules! println {
161
161
/// disable() on exit from UEFI boot services.
162
162
#[ cfg( feature = "logger" ) ]
163
163
unsafe fn init_logger ( st : & mut SystemTable < Boot > ) {
164
- let stdout = st. stdout ( ) ;
165
-
166
- // Construct the logger.
167
- let logger = {
168
- let logger = uefi:: logger:: Logger :: new ( ) ;
169
- logger. set_output ( stdout) ;
170
-
171
- LOGGER = Some ( logger) ;
172
- LOGGER . as_ref ( ) . unwrap ( )
173
- } ;
164
+ // Connect the logger to stdout.
165
+ LOGGER . set_output ( st. stdout ( ) ) ;
174
166
175
167
// Set the logger.
176
- log:: set_logger ( logger ) . unwrap ( ) ; // Can only fail if already initialized.
168
+ log:: set_logger ( & LOGGER ) . unwrap ( ) ; // Can only fail if already initialized.
177
169
178
170
// Set logger max level to level specified by log features
179
171
log:: set_max_level ( log:: STATIC_MAX_LEVEL ) ;
@@ -191,9 +183,7 @@ unsafe extern "efiapi" fn exit_boot_services(_e: Event, _ctx: Option<NonNull<c_v
191
183
SYSTEM_TABLE = None ;
192
184
193
185
#[ cfg( feature = "logger" ) ]
194
- if let Some ( ref mut logger) = LOGGER {
195
- logger. disable ( ) ;
196
- }
186
+ LOGGER . disable ( ) ;
197
187
198
188
uefi:: allocator:: exit_boot_services ( ) ;
199
189
}
0 commit comments