Skip to content

Commit c03e5e4

Browse files
author
wanglei13866
committed
去掉log unwrap
1 parent f29b83a commit c03e5e4

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/logger.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@ struct Logger;
2222
static LOGGER: Logger = Logger;
2323
static INITIALIZED: AtomicBool = AtomicBool::new(false);
2424

25-
pub(crate) fn set_log_level(level: LogLevel) {
25+
pub(crate) fn set_log_level(level: LogLevel) -> Result<(), Box<dyn std::error::Error>> {
2626
if !INITIALIZED.load(Ordering::Relaxed) {
27-
log::set_logger(&LOGGER).unwrap();
27+
log::set_logger(&LOGGER)
28+
.map_err(|e| format!("Failed to set logger: {}", e))?;
29+
2830
panic::set_hook(Box::new(|panic_info| {
29-
hostcalls::log(LogLevel::Critical, &panic_info.to_string()).unwrap();
31+
if let Err(e) = hostcalls::log(LogLevel::Critical, &panic_info.to_string()) {
32+
eprintln!("Failed to log panic info: {}", e);
33+
}
3034
}));
35+
3136
INITIALIZED.store(true, Ordering::Relaxed);
3237
}
3338
LOGGER.set_log_level(level);
39+
Ok(())
3440
}
3541

42+
3643
impl Logger {
3744
pub fn set_log_level(&self, level: LogLevel) {
3845
let filter = match level {
@@ -64,8 +71,12 @@ impl log::Log for Logger {
6471
log::Level::Error => LogLevel::Error,
6572
};
6673
let message = record.args().to_string();
67-
hostcalls::log(level, &message).unwrap();
74+
if let Err(e) = hostcalls::log(level, &message) {
75+
// 如果日志记录失败,我们可以尝试打印到标准错误
76+
eprintln!("Failed to log message: {}. Error: {}", message, e);
77+
}
6878
}
6979

80+
7081
fn flush(&self) {}
7182
}

0 commit comments

Comments
 (0)