-
Notifications
You must be signed in to change notification settings - Fork 95
slog v2
Dawid Ciężarkiewicz edited this page Apr 12, 2017
·
28 revisions
- Unified and simplified logging macros structure and ordering.
- Added logging Record
tags
- Refactored key-value pairs traits and structures and overall handling.
- It's now possible to
impl KV for MyStruct
. -
kv!
can be used to create on stack key-value list. -
KV
-implementing data can appear on the key-value list directly.
- It's now possible to
- Support chaining of
OwnedKVList
s. ExistingLogger
can be used as aDrain
to allow custom handling logic for a part of the logging hierarchy. - Added associated
Ok
type toDrain
. - Support for
Drain
s unwind safety. - Refactored
Record
to optimize performance on async operations. -
slog-extra
has been renamed toslog-async
since that's the only functionality it contained. -
slog-stream
is obsoleted and won't be used inslog v2
at all. It was a wrong abstraction.Decorators
functionality was moved toslog-term
. -
slog-term
provides openDecorator
traits to allow multiple terminal / file writing backends. -
slog-term
defaultDecorator
s useterm
crate and should work correctly on all supported OSes. -
DrainExt
has been removed and utility methods moved directly toDrain
-
slog-stdlog
utilizesslog-scope
directly. - Support for "typed"
Logger
s to allow squeezing last drops of performance possible, at the cost ofT
inLogger<T>
.
Core slog v2 crate is stable. Majority of core feature crates are ready and working, and will have stable releases after getting more confidence in their APIs.
Your feedback and opinions can speed up the stabilization process.
This list might not be up to date. Feel free to edit.
# all core improvements and ideas implemented; hopefully no more breaking changes coming;
slog = "2.0.0-3.1"
slog-async = "2.0.0-3.0"
slog-scope = "2.0.0-3.0"
slog-json = "2.0.0-3.0"
slog-bunyan = "2.0.0-3.0"
# some breaking changes still possible
slog-term = "2.0.0-3.0"
slog-stdlog = "2.0.0-0.2"
slog-envlogger = "2.0.0-1.0"
slog-atomic = "2.0.0-1.0"
slog-syslog = "0.10.0"
slog-config = "0.3.0"
# still need porting
slog-journald
slog-cadence
slog-html
slog-kvfilter
slog-example-lib
# obsoleted
slog-extra - contained just `async` so is not `slog-async`
slog-stream - use `Decorator` in slog-term instead
slog-serde - wasn't useful enough
slog-scope-stdlog - use slog-scope instead
Slog v2 ecosystem was (and is stil) being developed in the 0.x.y pre-release model. slog 2.0.0-1.0
should be treated as 0.1.0
version was, just working toward 2.0.0
release.
It's recommended to use the following to specify the dependency on pre-release versions of crates ported to slog. eg.
slog-term = ~2.0.0-3"