3个版本
0.3.2 | 2024年2月19日 |
---|---|
0.3.1 | 2024年2月19日 |
0.3.0 | 2024年2月19日 |
#281 in 调试
每月29次下载
用于 2 crates
10KB
69 代码行
serializable_log_record
默认情况下,log::Record结构体不可序列化。这个crate提供了一个可序列化的log::Record结构体版本。但更重要的是,它提供了一个宏into_log_record
,可以将序列化的记录转换回普通记录。这不像听起来那么简单,因为log::Record结构体在其字段中使用fmt::Arguments
,由于其极其严格的生存期,因此不可序列化。
这个crate是parallel_logger crate的核心辅助crate,但也可以独立使用。
用法
将依赖项添加到您的Cargo.toml
[dependencies]
serializable_log_record = "0.3"
如何在您的应用程序中使用它
let record: log::Record = ...get the record from a logger or build it manually...;
let serializable_record = SerializableLogRecord::from(&record);
如果您启用serde
特性,SerializableLogRecord结构体实现了Serialize和Deserialize特性。
如果您启用bincode2
特性,SerializableLogRecord结构体实现了bincode 2的Encode和Decode特性。
要将SerializableLogRecord转换回log::Record,可以使用into_log_record宏
let serializable_record = SerializableLogRecord::from(&record);
let mut builder = log::Record::builder();
logger.log(&SerializableLogRecord::into_log_record!(builder, serializable_record));
许可证
根据以下任一项许可
- Apache许可证,版本2.0(LICENSE-APACHE 或 http://apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖项
~47–330KB