runtime: retain BufferLogger within LOGGER
This commit is contained in:
parent
9611be657c
commit
41d8af754a
|
@ -40,7 +40,7 @@ pub struct BufferLogger {
|
|||
uart_filter: Cell<LevelFilter>
|
||||
}
|
||||
|
||||
static mut LOGGER: *const BufferLogger = 0 as *const _;
|
||||
static mut LOGGER: Option<BufferLogger> = None;
|
||||
|
||||
impl BufferLogger {
|
||||
pub fn new(buffer: &'static mut [u8]) -> BufferLogger {
|
||||
|
@ -50,10 +50,10 @@ impl BufferLogger {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn register<F: FnOnce()>(&self, f: F) {
|
||||
pub fn register<F: FnOnce()>(self, f: F) {
|
||||
unsafe {
|
||||
LOGGER = self;
|
||||
log::set_logger(&*LOGGER)
|
||||
LOGGER = Some(self);
|
||||
log::set_logger(LOGGER.as_ref().unwrap())
|
||||
.expect("global logger can only be initialized once");
|
||||
}
|
||||
log::set_max_level(LevelFilter::Info);
|
||||
|
@ -61,7 +61,7 @@ impl BufferLogger {
|
|||
}
|
||||
|
||||
pub fn with<R, F: FnOnce(&BufferLogger) -> R>(f: F) -> R {
|
||||
f(unsafe { &*LOGGER })
|
||||
f(unsafe { LOGGER.as_ref().expect("with logger") })
|
||||
}
|
||||
|
||||
pub fn buffer<'a>(&'a self) -> Result<LogBufferRef<'a>, ()> {
|
||||
|
|
Loading…
Reference in New Issue