2 个版本

0.2.2 2024 年 6 月 17 日
0.2.0 2024 年 6 月 3 日

#2#arpa

Download history 118/week @ 2024-05-28 50/week @ 2024-06-04 94/week @ 2024-06-11 61/week @ 2024-06-18 18/week @ 2024-07-02

每月 77 次下载
用于 arpa-node

MIT/Apache

6KB

作为属性宏,log_function 将

  1. 在返回之前,通过尝试识别返回语句并插入 debug! 语句,在调试级别自动记录当前函数的名称、输入和返回值。
  2. 在函数开始时将当前函数的名称作为 mdc 中的键,并在函数返回之前将其删除。

注意

  1. 输入和返回类型需要实现 Debug
  2. 处理异步函数时,建议使用 #![feature(async_fn_in_trait)]。此外,它也与 #[async_trait] 兼容。
  3. 为了保护机密信息,默认情况下忽略输入和返回值。您可以通过语义文字选项指定是否打印所有值或其子集。例如
    use arpa_log::*;
    
    #[log_function("show-input", "except foo bar", "show-return")]
    fn show_subset_of_input_and_return_value(foo: usize, bar: usize, baz: usize) -> usize {
       foo + bar + baz
    }
    
    然后日志应该是:{"message":"LogModel { fn_name: "show_subset_of_input_and_return_value", fn_args: ["foo: ignored", "bar: ignored", "baz: 3"], fn_return: "6" }","level":"DEBUG", "target":"show_subset_of_input_and_return_value","mdc":{"fn_name":"show_subset_of_input_and_return_value"}},使用测试日志记录器。

注意:不同日志记录器实现可能导致日志结果不同。

依赖项

~1.5MB
~38K SLoC