修正不打日志时log系列函数崩溃的问题

This commit is contained in:
2026-02-04 00:51:53 +08:00
parent 54b86a44e1
commit 6460b0b00a
2 changed files with 16 additions and 27 deletions

View File

@@ -94,9 +94,9 @@ impl Default for Config {
is_archipelago: true, is_archipelago: true,
is_spiral_abyss: true, is_spiral_abyss: true,
is_demonic_energy: true, is_demonic_energy: true,
is_forest: true, is_forest: false,
is_decompose: true, is_decompose: true,
is_attack_power: true, is_attack_power: false,
is_equip_transform: true, is_equip_transform: true,
} }
} }

View File

@@ -75,53 +75,42 @@ fn to_utf8(string: &CxxString) -> String {
cxx_string_to_string(string).to_string() cxx_string_to_string(string).to_string()
} }
fn push_log(t: MessageType, msg: String) {
if let Some(lock) = LOGGER_SENDER.get() {
let _ = lock.send(Starpoles {
r#type: t.into(),
message: msg.clone(),
});
}
}
fn log_error(msg: &cxx::CxxString) { fn log_error(msg: &cxx::CxxString) {
let msg = cxx_string_to_string(msg); let msg = cxx_string_to_string(msg);
let lock = LOGGER_SENDER.get().unwrap(); push_log(MessageType::Error, msg.clone());
let _ = lock.send(Starpoles {
r#type: MessageType::Error.into(),
message: msg.clone(),
});
error!("{}", msg); error!("{}", msg);
} }
fn log_warning(msg: &cxx::CxxString) { fn log_warning(msg: &cxx::CxxString) {
let msg = cxx_string_to_string(msg); let msg = cxx_string_to_string(msg);
let lock = LOGGER_SENDER.get().unwrap(); push_log(MessageType::Warning, msg.clone());
let _ = lock.send(Starpoles {
r#type: MessageType::Warning.into(),
message: msg.clone(),
});
warn!("{}", msg); warn!("{}", msg);
} }
fn log_info(msg: &cxx::CxxString) { fn log_info(msg: &cxx::CxxString) {
let msg = cxx_string_to_string(msg); let msg = cxx_string_to_string(msg);
let lock = LOGGER_SENDER.get().unwrap(); push_log(MessageType::Info, msg.clone());
let _ = lock.send(Starpoles {
r#type: MessageType::Info.into(),
message: msg.clone(),
});
info!("{}", msg); info!("{}", msg);
} }
fn log_debug(msg: &cxx::CxxString) { fn log_debug(msg: &cxx::CxxString) {
let msg = cxx_string_to_string(msg); let msg = cxx_string_to_string(msg);
let lock = LOGGER_SENDER.get().unwrap(); push_log(MessageType::Debug, msg.clone());
let _ = lock.send(Starpoles {
r#type: MessageType::Debug.into(),
message: msg.clone(),
});
debug!("{}", msg); debug!("{}", msg);
} }
fn log_trace(msg: &cxx::CxxString) { fn log_trace(msg: &cxx::CxxString) {
let msg = cxx_string_to_string(msg); let msg = cxx_string_to_string(msg);
let lock = LOGGER_SENDER.get().unwrap(); push_log(MessageType::Trace, msg.clone());
let _ = lock.send(Starpoles {
r#type: MessageType::Trace.into(),
message: msg.clone(),
});
trace!("{}", msg); trace!("{}", msg);
} }