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