#tracing #projects #instrumentation #add #instrument #thousands #logging

app clippy-tracing

这是一个用于在大型项目中添加、删除和检查tracing::instrument的工具,在这些项目中手动将其添加到数千个函数中是不切实际的。

9个版本 (破坏性更新)

0.7.0 2023年10月13日
0.6.0 2023年9月1日
0.5.0 2023年8月20日
0.4.0 2023年8月17日
0.1.0 2023年6月20日

#402 in 过程宏

Apache-2.0

23KB
417 代码行

clippy-tracing

Crates.io codecov

这是一个粗糙的工具

这是一个用于在大型项目中添加、删除和检查tracing::instrument的工具,在这些项目中手动将其添加到数千个函数中是不切实际的。

安装

cargo install clippy-tracing

用法

该工具在readme()集成测试中进行了测试。

fn main() {
    println!("Hello World!");
}
fn add(lhs: i32, rhs: i32) -> i32 {
    lhs + rhs
}
#[cfg(tests)]
mod tests {
    fn sub(lhs: i32, rhs: i32) -> i32 {
        lhs - rhs
    }
    #[test]
    fn test_one() {
        assert_eq!(add(1,1), sub(2, 1));
    }
}
clippy-tracing --action check # Missing instrumentation at {path}:9:4.\n
echo $? # 2
clippy-tracing --action fix
echo $? # 0
#[tracing::instrument(level = "trace", skip())]
fn main() {
    println!("Hello World!");
}
#[tracing::instrument(level = "trace", skip(lhs, rhs))]
fn add(lhs: i32, rhs: i32) -> i32 {
    lhs + rhs
}
#[cfg(tests)]
mod tests {
    #[tracing::instrument(level = "trace", skip(lhs, rhs))]
    fn sub(lhs: i32, rhs: i32) -> i32 {
        lhs - rhs
    }
    #[test]
    fn test_one() {
        assert_eq!(add(1,1), sub(2, 1));
    }
}
clippy-tracing --action check
echo $? # 0
clippy-tracing --action strip
echo $? # 0
fn main() {
    println!("Hello World!");
}
fn add(lhs: i32, rhs: i32) -> i32 {
    lhs + rhs
}
#[cfg(tests)]
mod tests {
    fn sub(lhs: i32, rhs: i32) -> i32 {
        lhs - rhs
    }
    #[test]
    fn test_one() {
        assert_eq!(add(1,1), sub(2, 1));
    }
}

日志

当使用log特性编译时,支持log_instrument

依赖项

~1.7–9.5MB
~72K SLoC