4 releases
0.1.5 | May 23, 2024 |
---|---|
0.1.4 | May 23, 2024 |
0.1.3 | May 21, 2024 |
0.1.1 | May 20, 2024 |
0.1.0 |
|
#165 in Debugging
1,777 downloads per month
Used in 54 crates
(2 directly)
10KB
166 lines
tracing-shared-rs
Share a logger between a dylib/cdylib and the main binary
Usage
[dependencies]
tracing-shared = "0.1"
checkout examples/example.rs
cdylib's case
fn main() {
let dylib = unsafe { libloading::Library::new(dylib) }.expect("error loading dylib");
let setup_logger: FnSetupLogger = unsafe { *dylib.get(b"setup_shared_logger_ref").unwrap() };
let run: FnRun = unsafe { *dylib.get(b"run").unwrap() };
let logger = SharedLogger::new();
setup_logger(&logger);
run("cdylib")
}
cdylib's case
use tracing_shared::SharedLogger;
fn main() {
let dylib = unsafe { libloading::Library::new(dylib) }.expect("error loading dylib");
let setup_logger: FnSetupLogger = unsafe { *dylib.get(b"setup_shared_logger_ref").unwrap() };
let run: FnRun = unsafe { *dylib.get(b"run").unwrap() };
let logger = SharedLogger::new();
setup_logger(&logger);
run("cdylib")
}
dylib's case
use tracing_shared::SharedLogger;
fn main() {
let logger = SharedLogger::new();
example_lib::setup_shared_logger_ref(&logger);
example_lib::run("dylib");
}
Dependencies
~0.4–6MB
~29K SLoC