#logging #log #macro #function #macro-derive #derive

macro logcall

An attribute macro that logs the function return value

6 releases

0.1.5 Aug 19, 2023
0.1.4 Jul 22, 2023

#318 in #function

Download history 1873/week @ 2024-01-05 2686/week @ 2024-01-12 3020/week @ 2024-01-19 2160/week @ 2024-01-26 2030/week @ 2024-02-02 108/week @ 2024-02-09 1365/week @ 2024-02-16 2619/week @ 2024-02-23 2409/week @ 2024-03-01 1592/week @ 2024-03-08 2685/week @ 2024-03-15 2387/week @ 2024-03-22 2127/week @ 2024-03-29 1681/week @ 2024-04-05 1253/week @ 2024-04-12 1489/week @ 2024-04-19

6,926 downloads per month
Used in 2 crates

MIT license

17KB
317 lines

logcall

An attribute macro that logs the function return value.

This is a reimplementation of the log-derive crate with async-trait compatibility.

Usage

use logcall::logcall;

#[logcall("info")]
fn foo(a: usize) -> usize {
    a + 1
}

#[logcall(err = "error")]
fn bar(a: usize) -> Result<usize, usize> {
    Err(a + 1)
}

#[logcall(ok = "info", err = "error")]
fn baz(a: usize) -> Result<usize, usize> {
    Ok(a + 1)
}

fn main() {
    env_logger::builder().filter_level(log::LevelFilter::Info).init();
    foo(1);
    bar(1).ok();
    baz(1).ok();
}

// prints:
// [2023-07-22T06:55:10Z INFO  main] foo() => 2
// [2023-07-22T06:55:10Z ERROR main] bar() => Err(2)
// [2023-07-22T06:55:10Z INFO  main] baz() => Ok(2)

Dependencies

~1.5MB
~34K SLoC