Skip to content

8192K/serializable_log_record

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serializable_log_record

Crates.io Docs MIT/APACHE-2.0

The log::Record struct is not serializable by default. This crate provides a serializable version of the log::Record struct. But most importantly, it provides a macro into_log_record which can convert the serialized record back into a regular record. This is not as straightforward as it sounds since the log::Record struct uses fmt::Arguments in one of its fields which is not serializable due to its extremely strict lifetime.

This crate is a central helper crate for the parallel_logger crate but can be used independently.

Usage

Add the dependency to your Cargo.toml:

[dependencies]
serializable_log_record = "0.3"

How to use in your application:

let record: log::Record = ...get the record from a logger or build it manually...;
let serializable_record = SerializableLogRecord::from(&record);

If you enable the serde feature, the SerializableLogRecord struct implements the Serialize and Deserialize traits.
If you enable the bincode2 feature, the SerializableLogRecord struct implements the Encode and Decode traits for bincode 2.

In order to convert the SerializableLogRecord back into a log::Record you can use the into_log_record macro:

let serializable_record = SerializableLogRecord::from(&record);
let mut builder = log::Record::builder();
logger.log(&SerializableLogRecord::into_log_record!(builder, serializable_record));

License

Licensed under either of

About

Convert a log::Record to a serializable format. This is not as straightforward as it sounds, because the log::Record contains non-serializable types. This crate provides a way to convert those types to serializable types and back.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE.txt
MIT
LICENSE-MIT.txt

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages