2 个版本
0.2.2 | 2024 年 6 月 17 日 |
---|---|
0.2.0 | 2024 年 6 月 3 日 |
#2 在 #arpa
每月 77 次下载
用于 arpa-node
6KB
作为属性宏,log_function 将
- 在返回之前,通过尝试识别返回语句并插入
debug!
语句,在调试级别自动记录当前函数的名称、输入和返回值。 - 在函数开始时将当前函数的名称作为
mdc
中的键,并在函数返回之前将其删除。
注意
- 输入和返回类型需要实现
Debug
。 - 处理异步函数时,建议使用
#![feature(async_fn_in_trait)]
。此外,它也与#[async_trait]
兼容。 - 为了保护机密信息,默认情况下忽略输入和返回值。您可以通过语义文字选项指定是否打印所有值或其子集。例如
然后日志应该是:{"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"}},使用测试日志记录器。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 }
注意:不同日志记录器实现可能导致日志结果不同。
依赖项
~1.5MB
~38K SLoC