1个稳定版本
| 1.0.0 | 2024年3月21日 |
|---|
#1228 在 嵌入式开发
102 每月下载次数
8KB
135 行
l0g
为无_std库设计的具有偏见的日志门面,有时也可在std环境中使用。
概述
日志设施因环境而异,尤其是在no_std和std之间。此门面允许将选择使用哪个日志实现的决策委托给顶层应用程序。
对l0g::{error,warn,info,debug,trace}的任何调用
- 在未设置任何功能时变为空操作
log::{error,warn,info,debug,trace}来自log crate当设置了log功能defmt::{error,warn,info,debug,trace}来自defmt crate当设置了defmt功能
此外,还提供了proc-macro来泛化使用哪种格式化实现
#[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"] }
依赖项
~0.3–0.8MB
~19K SLoC