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 • Rust 包仓库 615/week @ 2024-05-17 • Rust 包仓库 300/week @ 2024-05-24 • Rust 包仓库 191/week @ 2024-05-31 • Rust 包仓库 754/week @ 2024-06-07 • Rust 包仓库 406/week @ 2024-06-14 • Rust 包仓库 274/week @ 2024-06-21 • Rust 包仓库 161/week @ 2024-06-28 • Rust 包仓库 803/week @ 2024-07-05 • Rust 包仓库 640/week @ 2024-07-12 • Rust 包仓库 268/week @ 2024-07-19 • Rust 包仓库 338/week @ 2024-07-26 • Rust 包仓库 189/week @ 2024-08-02 • Rust 包仓库 391/week @ 2024-08-09 • Rust 包仓库 586/week @ 2024-08-16 • Rust 包仓库

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