2个不稳定版本
0.2.0 | 2021年12月24日 |
---|---|
0.1.0 | 2021年12月23日 |
#497 in 调试
93KB
146 行
Malogany
简单的树/分层日志库
(树 > 桃花心木) + 日志 => Malogany
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
log = "0.4"
malogany = "0.1"
使用最大日志级别初始化Malogany
malogany::init(Level::Trace).unwrap();
对于普通消息,使用来自 log
crate 的 info!
、warn!
、error!
和 debug!
宏。要创建分支,使用 enter_branch
和 exit_branch
malogany::enter_branch("ident");
// any log messages will be nested within the ident branch
// you can keep nesting with `enter_branch`/`exit_branch`
malogany::exit_branch();
出于性能原因,分支仅在实际调试构建中渲染。此crate的未来版本将使此可定制。
在版本 0.2
中,您可以使用 scopeguard
在由 enter_branch_scoped
返回的守护变量超出作用域时自动退出分支。要启用此功能,将以下内容添加到您的 Cargo.toml
malogany = { version = "0.1" , features = ["scopeguard"] }
然后使用 malogany::enter_branch_scoped
而不是 malogany::enter_branch
{
// behaves the same as enter_branch
let _guard = malogany::enter_branch_scoped("branch");
// any log messages will be nested within the branch as expected
// at the end of this block, _guard will be dropped which automatically calls `malogany::exit_branch()`
}
请注意,守护变量非常重要,不能删除。有关更多信息,请参阅 scopeguard
的文档
示例
上面的截图是 example/basic.rs
的输出。自己尝试一下,使用 cargo run --example basic
。有关使用 scopeguard
的示例,请尝试 cargo run --all-features --example scoped
依赖项
~0.2–7MB
~43K SLoC