-
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
- 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 is considered ready.
This list might not be up to date. Feel free to update.
# 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"