2个不稳定版本

0.2.0 2021年12月24日
0.1.0 2021年12月23日

#497 in 调试

MIT 许可证

93KB
146

Malogany

Sample of Malogany's output
简单的树/分层日志库
(树 > 桃花心木) + 日志 => Malogany

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
log = "0.4"
malogany = "0.1"

使用最大日志级别初始化Malogany

malogany::init(Level::Trace).unwrap();

对于普通消息,使用来自 log crate 的 info!warn!error!debug! 宏。要创建分支,使用 enter_branchexit_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