This release introduces the Filter
trait, a new API for per-layer
filtering. This allows controlling which spans and events are
recorded by various layers individually, rather than globally.
In addition, it adds a new Targets
filter, which provides a
lighter-weight version of the filtering provided by EnvFilter
, as
well as other smaller API improvements and fixes.
Deprecated
- registry:
SpanRef::parent_id
, which cannot properly support
per-layer filtering. Use.parent().map(SpanRef::id)
instead.
(#1523)
Fixed
- layer
Context
methods that are provided when theSubscriber
implementsLookupSpan
no longer require the "registry" feature flag
(#1525) - layer
fmt::Debug
implementation forLayered
no longer requires
theS
type parameter to implementDebug
(#1528)
Added
- registry:
Filter
trait,Filtered
type,Layer::with_filter
method, and other APIs for per-layer filtering (#1523) - filter:
FilterFn
andDynFilterFn
types that implement global
(Layer
) and per-layer (Filter
) filtering for closures and function
pointers (#1523) - filter:
Targets
filter, which implements a lighter-weight form
ofEnvFilter
-like filtering (#1550) - env-filter: Added support for filtering on floating-point values
(#1507) - layer:
Layer::on_layer
callback, called when layering the
Layer
onto aSubscriber
(#1523) - layer:
Layer
implementations forBox<L>
andArc<L>
whereL: Layer
(#1536) - layer:
Layer
implementations forBox<dyn Layer>
and
Arc<dyn Layer>
(#1536) - A number of small documentation fixes and improvements (#1553,
#1544, #1539, #1524)
Special thanks to new contributors @jsgf and @maxburke for contributing
to this release!