4个版本

0.1.5 2024年5月23日
0.1.4 2024年5月23日
0.1.3 2024年5月21日
0.1.1 2024年5月20日
0.1.0 2024年2月21日

#167 in 调试

Download history 615/week @ 2024-05-17 300/week @ 2024-05-24 191/week @ 2024-05-31 754/week @ 2024-06-07 406/week @ 2024-06-14 274/week @ 2024-06-21 161/week @ 2024-06-28 803/week @ 2024-07-05 640/week @ 2024-07-12 268/week @ 2024-07-19 338/week @ 2024-07-26 189/week @ 2024-08-02 391/week @ 2024-08-09 586/week @ 2024-08-16

1,573 每月下载量
用于 53 crate (直接使用2个)

MIT/Apache

10KB
166 代码行

tracing-shared-rs

在dylib/cdylib和主二进制文件之间共享日志记录器

用法

[dependencies]
tracing-shared = "0.1"

检出示例示例/example.rs

cdylib的情况

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的情况

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的情况

use tracing_shared::SharedLogger;

fn main() {
    let logger = SharedLogger::new();
    example_lib::setup_shared_logger_ref(&logger);
    example_lib::run("dylib");
}

依赖

~0.4–6.5MB
~29K SLoC