Closed
Description
Tracking issue for the implementation of #296. See also #149
- Initial implementation (Build out initial key values API #324)
- Integration with frameworks and loggers:
-
slog
- Zero-allocation conversion between
slog::Value
andlog::kv::Value
. We should be able to do zero-allocation conversion fromlog
toslog
, but may need to allocate fromslog
tolog
.
- Zero-allocation conversion between
-
tracing
(log: Support structured values tokio-rs/tracing#341)- Zero-allocation conversion between
tracing::Value
andlog::kv::Value
in theevent!
macro (Make it easier to create a Value from owned or erased external types #339) - Capture
std::error::Error
s asValue
s
- Zero-allocation conversion between
-
fern
-
async-log
-
std-logger
(Print key values Thomasdezeeuw/std-logger#14)- Some way to tell whether a
Source
has any key-value pairs (Add a count method to Source #329)
- Some way to tell whether a
-
femme
-
env_logger
(Add support for Key-Value data in log records. rust-cli/env_logger#137) -
antlog
(an experimental wrapper to prove out requirements)- A way to get specific values (Add a Source::get method for finding a single value #335)
- A way to coerce a value to a common type (Support coercing structured Values into primitive types #379)
- Please suggest others to track!
-
- Explore macro support (key_value capable log macros #343)
-
log!("msg {}", interpolated, { key: value })
(kv macro support #353) - We ended up having to revert this inlog
, but are experimenting externally -
log_kv_macro
-
log_macros
-
- Integration with serialization frameworks:
-
serde
- Conversion between
serde::Serialize
andstd::fmt::Debug
(Add key and value methods to DebugMap rfcs#2696). Seeserde_fmt
.
- Conversion between
-
sval
(Add structured support to kv::Value using sval #342)
-
- Micro benchmarks
- Documentation and examples
- Stabilization review
- Open questions
- Should
Source::count
return aResult<usize>
instead of a plainusize
?
- Should