1个稳定版本

1.0.0 2024年3月21日

#30#log-format

Download history 2/week @ 2024-05-09 40/week @ 2024-05-16 53/week @ 2024-05-23 222/week @ 2024-05-30 133/week @ 2024-06-06 239/week @ 2024-06-13 81/week @ 2024-06-20 90/week @ 2024-06-27 32/week @ 2024-07-04 2/week @ 2024-07-11 21/week @ 2024-07-18 16/week @ 2024-07-25 185/week @ 2024-08-01 210/week @ 2024-08-08 265/week @ 2024-08-15

676 每月下载量
l0g 中使用

MIT 许可证

6KB

l0g

针对 no_std 库的具有观点的日志门面,有时也在 std 上下文中使用。

概述

日志功能根据环境不同而有所不同,尤其是在 no_stdstd 之间。此门面允许将选择使用哪个日志实现的决策委托给顶级应用程序。

任何对 l0g::{error,warn,info,debug,trace} 的调用

  • 如果没有设置任何功能,则变为空操作
  • 当设置 log 功能时,从 log 包中调用 log::{error,warn,info,debug,trace}
  • 当设置 defmt 功能时,从 defmt 包中调用 defmt::{error,warn,info,debug,trace}

此外,还提供了一个过程宏,以泛化应使用哪种格式化实现

#[l0g::format]
struct MyStruct {
    value: u8
}

变为

#[derive(core::fmt::Debug)]
struct MyStruct {
    value: u8
}

如果使用 log 功能或

#[derive(defmt::Format)]
struct MyStruct {
    value: u8
}

如果使用 defmt 功能。

这允许一个 {:?} 格式化在任何选择的日志实现中都能正常工作。

用法

在你的库的 Cargo.toml 中只需说

l0g = "1"

在顶层应用 no_std 中使用 defmt 功能指定依赖项。有关如何使 defmt 工作的信息,请参阅其相应文档。

l0g = { version = "1", features = ["defmt"] }

在顶层应用 std 中使用 log 功能指定依赖项。有关如何使 log 工作的信息,请参阅其相应文档。

l0g = { version = "1", features = ["log"] }

依赖项

~320–780KB
~18K SLoC