mirror of
https://github.com/hexedtech/codemp.git
synced 2024-11-22 15:24:48 +01:00
fix: lua use try_init for logging
This commit is contained in:
parent
13f862a0e8
commit
72e86a8079
1 changed files with 6 additions and 10 deletions
|
@ -12,7 +12,6 @@ lazy_static::lazy_static!{
|
||||||
// TODO use a runtime::Builder::new_current_thread() runtime to not behave like malware
|
// TODO use a runtime::Builder::new_current_thread() runtime to not behave like malware
|
||||||
static ref STATE : GlobalState = GlobalState::default();
|
static ref STATE : GlobalState = GlobalState::default();
|
||||||
static ref LOG : broadcast::Sender<String> = broadcast::channel(32).0;
|
static ref LOG : broadcast::Sender<String> = broadcast::channel(32).0;
|
||||||
static ref ONCE : AtomicBool = AtomicBool::new(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct GlobalState {
|
struct GlobalState {
|
||||||
|
@ -223,9 +222,7 @@ impl Write for LuaLoggerProducer {
|
||||||
fn flush(&mut self) -> std::io::Result<()> { Ok(()) }
|
fn flush(&mut self) -> std::io::Result<()> { Ok(()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_logger(_: &Lua, (debug, path): (Option<bool>, Option<String>)) -> LuaResult<()> {
|
fn setup_logger(_: &Lua, (debug, path): (Option<bool>, Option<String>)) -> LuaResult<bool> {
|
||||||
if ONCE.load(std::sync::atomic::Ordering::Relaxed) { return Ok(()) }
|
|
||||||
|
|
||||||
let format = tracing_subscriber::fmt::format()
|
let format = tracing_subscriber::fmt::format()
|
||||||
.with_level(true)
|
.with_level(true)
|
||||||
.with_target(true)
|
.with_target(true)
|
||||||
|
@ -243,15 +240,14 @@ fn setup_logger(_: &Lua, (debug, path): (Option<bool>, Option<String>)) -> LuaRe
|
||||||
.event_format(format)
|
.event_format(format)
|
||||||
.with_max_level(level);
|
.with_max_level(level);
|
||||||
|
|
||||||
if let Some(path) = path {
|
let result = if let Some(path) = path {
|
||||||
let logfile = std::fs::File::create(path).expect("failed creating logfile");
|
let logfile = std::fs::File::create(path).expect("failed creating logfile");
|
||||||
builder.with_writer(Mutex::new(logfile)).init();
|
builder.with_writer(Mutex::new(logfile)).try_init().is_ok()
|
||||||
} else {
|
} else {
|
||||||
builder.with_writer(Mutex::new(LuaLoggerProducer)).init();
|
builder.with_writer(Mutex::new(LuaLoggerProducer)).try_init().is_ok()
|
||||||
}
|
};
|
||||||
|
|
||||||
ONCE.store(true, std::sync::atomic::Ordering::Relaxed);
|
Ok(result)
|
||||||
Ok(())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_logger(_: &Lua, (): ()) -> LuaResult<LuaLogger> {
|
fn get_logger(_: &Lua, (): ()) -> LuaResult<LuaLogger> {
|
||||||
|
|
Loading…
Reference in a new issue