Skip to content

A tool to add, remove and check for `tracing::instrument` in large projects where it is infeasible to manually add it to thousands of functions.

Notifications You must be signed in to change notification settings

JonathanWoollett-Light/clippy-tracing

Repository files navigation

clippy-tracing

Crates.io codecov

This is rough tool

A tool to add, remove and check for tracing::instrument in large projects where it is infeasible to manually add it to thousands of functions.

Installation

cargo install clippy-tracing

Usage

This is tested in the readme() integration test.

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

Supports log_instrument when compiled with the log feature.

About

A tool to add, remove and check for `tracing::instrument` in large projects where it is infeasible to manually add it to thousands of functions.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages