parking_lot dependency to accept the latest parking_lot version (#774)Thanks to @rkuhn, @greenwoodcm, and @Ralith for contributing to this release!
Span::record would result in malformed spans (#709)ChronoUtc format_time (#677)This release includes several API ergonomics improvements, including shorthand constructors for many types, and an extension trait for initializing subscribers using method-chaining style. Additionally, several bugs in less commonly used fmt APIs were fixed.
fmt (including tracing_subscriber::fmt() to return a SubscriberBuilder, tracing_subscriber::fmt::layer() to return a format Layer, etc) (#660)tracing_subscriber::registry() to construct a new registry (#660)SubscriberInitExt extension trait for more ergonomic subscriber initialization (#660)LayerBuilder methods to Layer (#655)LayerBuilder, as Layer now implements all builder methods (#655)Compact formatter not omitting levels with with_level(false) (#657)fmt::Layer duplicating the fields for a new span if another layer has already formatted its fields (#634)record to add new fields to a span that already has fields (#659)flatten_event to SubscriberBuilder (#599)with_level to SubscriberBuilder (#594)EnvFilter directive selection now behaves correctly (i.e. like env_logger) (#583)EnvFilter incorrectly allowing less-specific filter directives to enable events that are disabled by more-specific filters (#583)EnvFilter performance improvements, especially when filtering events generated by log records (#578, #583)BTreeMap with Vec in DirectiveSet, improving iteration performance significantly with typical numbers of filter directives (#580)A big thank-you to @samschlegel for lots of help with EnvFilter performance tuning in this release!
Context to FmtContext (#420, #425)Builder to SubscriberBuilder (#420)Filter. Use EnvFilter instead (#434)Registry, a Subscriber implementation that Layers can use as a high-performance, in-memory span store. (#420, #425, #432, #433, #435)LookupSpan trait, implemented by Subscribers to expose stored span data to Layers (#420)fmt::Layer, to allow composing log formatting with other LayersContext to FmtContext (#420, #425) (BREAKING)Builder to SubscriberBuilder (#420) (BREAKING)fmt::Subscriber in terms of the Registry and Layers (#420)Filter. Use EnvFilter instead (#434) (BREAKING)fmt::SubscriberBuilder::init not setting up log compatibility (#489)Layered subscribers failing to downcast to their own type (#549)Layer::downcast_ref returning invalid references (#454){} printed after spans with no fields (f079f2d)smallvec dependency to 0.1 (#543)Layered subscribers failing to downcast to their own type (#549)FormattedFields extensions from the same formatter type (1c3bb70)fmt::Layer::on_record inserting a new FormattedFields when formatted fields for a span already exist (1c3bb70)dbg! macros (#533)FormattedFields::new constructor (#478)fmt::Layer documentation (#510)with_target(false) (#481)fmt::SubscriberBuilder::init not setting up log compatibility (#489)no-default-features (#499, #500)LookupSpans implementation for Layered (#448)SpanRef::from_root to iterate over a span's parents from the root (#460)Context::scope, to iterate over the current context from the root (#460)Context::lookup_current, which returns a SpanRef to the current span's data (#460)Context methods to be less restrictive (#460)Layer::downcast_ref returning invalid references (#454)Registry, a reusable span store that Layers can use a high-performance, in-memory store. (#420, #425, #432, #433, #435)fmt::Subscriber in terms of the Registry and Layers (#420)fmt::format::FormatFields and fmt::format::FormatEvent to accept a mandatory FmtContext. These FormatFields and FormatEvent will likely see additional breaking changes in subsequent alpha. (#420, #425)Filter. Use EnvFilter instead (#434)Thanks to all the contributers to this release!
init and try_init functions to FmtSubscriber (#385)ChronoUtc and ChronoLocal timers, RFC 3339 support (#387)tracing::subscriber::set_default which sets the default subscriber and returns a drop guard. This drop guard will reset the dispatch on drop (#388).EnvFilter. Setting RUST_LOG=target previously only the ERROR level, while it should enable everything. tracing-subscriber now defaults to TRACE if no level is specified (#401)tracing-log feature flag for init + try_init. The feature flag tracing_log was used instead of the correct tracing-log. As a result, both tracing-log and tracing_log needed to be specified in order to initialize the global logger. Only tracing-log needs to be specified now (#400).Thanks to all the contributers to this release!
FmtSubscriber::current_span is used (#371)with_ansi(false) on FmtSubscriber not disabling ANSI color formatting for timestamps (#354)FmtSubscriber that could cause spans to not be closed when all references are dropped (#366)Layered subscribers not properly forwarding calls to current_span (#350)EnvFilter ignoring directives with targets that are the same number of characters (#333)EnvFilter failing to properly apply filter directives to events generated from log records bytracing-log (#344)Filter to EnvFilter, deprecated Filter (#339)FmtSubscriber now defaults to enabling only the INFO level and above when a max level filter or EnvFilter is not set (#336)parking_lot dependency an opt-in feature flag (#348)EnvFilter::add_directive to add new directives to filters after they are constructed (#334)fmt::Builder::with_max_level to set a global level filter for a FmtSubscriber without requiring the use of EnvFilter (#336)Layer implementation for LevelFilter (#336)EnvFilter now implements fmt::Display (#329)crossbeam-util (#348)CurrentSpan (#325)