1# 0.2.16 (February 19, 2020) 2 3### Fixed 4 5- **env-filter**: Fixed directives where the level is in mixed case (such as 6 `Info`) failing to parse ([#1126]) 7- **fmt**: Fixed `fmt::Subscriber` not providing a max-level hint ([#1251]) 8- `tracing-subscriber` no longer enables `tracing` and `tracing-core`'s default 9 features ([#1144]) 10 11### Changed 12 13- **chrono**: Updated `chrono` dependency to 0.4.16 ([#1189]) 14- **log**: Updated `tracing-log` dependency to 0.1.2 15 16Thanks to @salewski, @taiki-e, @davidpdrsn and @markdingram for contributing to 17this release! 18 19[#1126]: https://github.com/tokio-rs/tracing/pull/1126 20[#1251]: https://github.com/tokio-rs/tracing/pull/1251 21[#1144]: https://github.com/tokio-rs/tracing/pull/1144 22[#1189]: https://github.com/tokio-rs/tracing/pull/1189 23 24# 0.2.15 (November 2, 2020) 25 26### Fixed 27 28- **fmt**: Fixed wrong lifetime parameters on `FormatFields` impl for 29 `FmtContext` ([#1082]) 30 31### Added 32 33- **fmt**: `format::Pretty`, an aesthetically pleasing, human-readable event 34 formatter for local development and user-facing CLIs ([#1080]) 35- **fmt**: `FmtContext::field_format`, which returns the subscriber's field 36 formatter ([#1082]) 37 38[#1082]: https://github.com/tokio-rs/tracing/pull/1082 39[#1080]: https://github.com/tokio-rs/tracing/pull/1080 40 41# 0.2.14 (October 22, 2020) 42 43### Fixed 44 45- **registry**: Fixed `Registry::new` allocating an excessively large amount of 46 memory, most of which would never be used ([#1064]) 47 48### Changed 49 50- **registry**: Improved `new_span` performance by reusing `HashMap` allocations 51 for `Extensions` ([#1064]) 52- **registry**: Significantly improved the performance of `Registry::enter` and 53 `Registry::exit` ([#1058]) 54 55[#1064]: https://github.com/tokio-rs/tracing/pull/1064 56[#1058]: https://github.com/tokio-rs/tracing/pull/1058 57 58# 0.2.13 (October 7, 2020) 59 60### Changed 61 62- Updated `tracing-core` to 0.1.17 ([#992]) 63 64### Added 65 66- **env-filter**: Added support for filtering on targets which contain dashes 67 ([#1014]) 68- **env-filter**: Added a warning when creating an `EnvFilter` that contains 69 directives that would enable a level disabled by the `tracing` crate's 70 `static_max_level` features ([#1021]) 71 72Thanks to @jyn514 and @bkchr for contributing to this release! 73 74[#992]: https://github.com/tokio-rs/tracing/pull/992 75[#1014]: https://github.com/tokio-rs/tracing/pull/1014 76[#1021]: https://github.com/tokio-rs/tracing/pull/1021 77 78# 0.2.12 (September 11, 2020) 79 80### Fixed 81 82- **env-filter**: Fixed a regression where `Option<Level>` lost its 83 `Into<LevelFilter>` impl ([#966]) 84- **env-filter**: Fixed `EnvFilter` enabling spans that should not be enabled 85 when multiple subscribers are in use ([#927]) 86 87### Changed 88 89- **json**: `format::Json` now outputs fields in a more readable order ([#892]) 90- Updated `tracing-core` dependency to 0.1.16 91 92### Added 93 94- **fmt**: Add `BoxMakeWriter` for erasing the type of a `MakeWriter` 95 implementation ([#958]) 96- **fmt**: Add `TestWriter` `MakeWriter` implementation to support libtest 97 output capturing ([#938]) 98- **layer**: Add `Layer` impl for `Option<T> where T: Layer` ([#910]) 99- **env-filter**: Add `From<Level>` impl for `Directive` ([#918]) 100- Multiple documentation fixes and improvements 101 102Thanks to @Pothulapati, @samrg472, @bryanburgers, @keetonian, and @SriRamanujam 103for contributing to this release! 104 105[#927]: https://github.com/tokio-rs/tracing/pull/927 106[#966]: https://github.com/tokio-rs/tracing/pull/966 107[#958]: https://github.com/tokio-rs/tracing/pull/958 108[#892]: https://github.com/tokio-rs/tracing/pull/892 109[#938]: https://github.com/tokio-rs/tracing/pull/938 110[#910]: https://github.com/tokio-rs/tracing/pull/910 111[#918]: https://github.com/tokio-rs/tracing/pull/918 112 113# 0.2.11 (August 10, 2020) 114 115### Fixed 116 117- **env-filter**: Incorrect max level hint when filters involving span field 118 values are in use (#907) 119- **registry**: Fixed inconsistent span stacks when multiple registries are in 120 use on the same thread (#901) 121 122### Changed 123 124- **env-filter**: `regex` dependency enables fewer unused feature flags (#899) 125 126Thanks to @bdonlan and @jeromegn for contributing to this release! 127 128# 0.2.10 (July 31, 2020) 129 130### Fixed 131 132- **docs**: Incorrect formatting (#862) 133 134### Changed 135 136- **filter**: `LevelFilter` is now a re-export of the 137 `tracing_core::LevelFilter` type, it can now be used interchangably with the 138 versions in `tracing` and `tracing-core` (#853) 139- **filter**: Significant performance improvements when comparing `LevelFilter`s 140 and `Level`s (#853) 141- Updated the minimum `tracing-core` dependency to 0.1.12 (#853) 142 143### Added 144 145- **filter**: `LevelFilter` and `EnvFilter` now participate in `tracing-core`'s 146 max level hinting, improving performance significantly in some use cases where 147 levels are disabled globally (#853) 148 149# 0.2.9 (July 23, 2020) 150 151### Fixed 152 153- **fmt**: Fixed compilation failure on MSRV when the `chrono` feature is 154 disabled (#844) 155 156### Added 157 158- **fmt**: Span lookup methods defined by `layer::Context` are now also provided 159 by `FmtContext` (#834) 160 161# 0.2.8 (July 17, 2020) 162 163### Changed 164 165- **fmt**: When the `chrono` dependency is enabled, the `SystemTime` timestamp 166 formatter now emits human-readable timestamps rather than using `SystemTime`'s 167 `fmt::Debug`implementation (`chrono` is still required for customized 168 timestamp formatting) (#807) 169- **ansi**: Updated `ansi_term` dependency to 0.12 (#816) 170 171### Added 172 173- **json**: `with_span_list` method to configure the JSON formatter to include a 174 list of all spans in the current trace in formatting events (similarly to the 175 text formatter) (#741) 176- **json**: `with_current_span` method to configure the JSON formatter to include 177 a field for the _current_ span (the leaf of the trace) in formatted events 178 (#741) 179- **fmt**: `with_thread_names` and `with_thread_ids` methods to configure 180 `fmt::Subscriber`s and `fmt::Layer`s to include the thread name and/or thread ID 181 of the current thread when formatting events (#818) 182 183Thanks to new contributors @mockersf, @keetonian, and @Pothulapati for 184contributing to this release! 185 186# 0.2.7 (July 1, 2020) 187 188### Changed 189 190- **parking_lot**: Updated the optional `parking_lot` dependency to accept the 191 latest `parking_lot` version (#774) 192 193### Fixed 194 195- **fmt**: Fixed events with explicitly overridden parent spans being formatted 196 as though they were children of the current span (#767) 197 198### Added 199 200- **fmt**: Added the option to print synthesized events when spans are created, 201 entered, exited, and closed, including span durations (#761) 202- Documentation clarification and improvement (#762, #769) 203 204Thanks to @rkuhn, @greenwoodcm, and @Ralith for contributing to this release! 205 206# 0.2.6 (June 19, 2020) 207 208### Fixed 209 210- **fmt**: Fixed an issue in the JSON formatter where using `Span::record` would 211 result in malformed spans (#709) 212 213# 0.2.5 (April 21, 2020) 214 215### Changed 216 217- **fmt**: Bump sharded-slab dependency (#679) 218 219### Fixed 220 221- **fmt**: remove trailing space in `ChronoUtc` `format_time` (#677) 222 223# 0.2.4 (April 6, 2020) 224 225This release includes several API ergonomics improvements, including shorthand 226constructors for many types, and an extension trait for initializing subscribers 227using method-chaining style. Additionally, several bugs in less commonly used 228`fmt` APIs were fixed. 229 230### Added 231 232- **fmt**: Shorthand free functions for constructing most types in `fmt` 233 (including `tracing_subscriber::fmt()` to return a `SubscriberBuilder`, 234 `tracing_subscriber::fmt::layer()` to return a format `Layer`, etc) (#660) 235- **registry**: Shorthand free function `tracing_subscriber::registry()` to 236 construct a new registry (#660) 237- Added `SubscriberInitExt` extension trait for more ergonomic subscriber 238 initialization (#660) 239 240### Changed 241 242- **fmt**: Moved `LayerBuilder` methods to `Layer` (#655) 243 244### Deprecated 245 246- **fmt**: `LayerBuilder`, as `Layer` now implements all builder methods (#655) 247 248### Fixed 249 250- **fmt**: Fixed `Compact` formatter not omitting levels with 251 `with_level(false)` (#657) 252- **fmt**: Fixed `fmt::Layer` duplicating the fields for a new span if another 253 layer has already formatted its fields (#634) 254- **fmt**: Added missing space when using `record` to add new fields to a span 255 that already has fields (#659) 256- Updated outdated documentation (#647) 257 258 259# 0.2.3 (March 5, 2020) 260 261### Fixed 262 263- **env-filter**: Regression where filter directives were selected in the order 264 they were listed, rather than most specific first (#624) 265 266# 0.2.2 (February 27, 2020) 267 268### Added 269 270- **fmt**: Added `flatten_event` to `SubscriberBuilder` (#599) 271- **fmt**: Added `with_level` to `SubscriberBuilder` (#594) 272 273# 0.2.1 (February 13, 2020) 274 275### Changed 276 277- **filter**: `EnvFilter` directive selection now behaves correctly (i.e. like 278 `env_logger`) (#583) 279 280### Fixed 281 282- **filter**: Fixed `EnvFilter` incorrectly allowing less-specific filter 283 directives to enable events that are disabled by more-specific filters (#583) 284- **filter**: Multiple significant `EnvFilter` performance improvements, 285 especially when filtering events generated by `log` records (#578, #583) 286- **filter**: Replaced `BTreeMap` with `Vec` in `DirectiveSet`, improving 287 iteration performance significantly with typical numbers of filter directives 288 (#580) 289 290A big thank-you to @samschlegel for lots of help with `EnvFilter` performance 291tuning in this release! 292 293# 0.2.0 (February 4, 2020) 294 295### Breaking Changes 296 297- **fmt**: Renamed `Context` to `FmtContext` (#420, #425) 298- **fmt**: Renamed `Builder` to `SubscriberBuilder` (#420) 299- **filter**: Removed `Filter`. Use `EnvFilter` instead (#434) 300 301### Added 302 303- **registry**: `Registry`, a `Subscriber` implementation that `Layer`s can use 304 as a high-performance, in-memory span store. (#420, #425, #432, #433, #435) 305- **registry**: Added `LookupSpan` trait, implemented by `Subscriber`s to expose 306 stored span data to `Layer`s (#420) 307- **fmt**: Added `fmt::Layer`, to allow composing log formatting with other `Layer`s 308- **fmt**: Added support for JSON field and event formatting (#377, #415) 309- **filter**: Documentation for filtering directives (#554) 310 311### Changed 312 313- **fmt**: Renamed `Context` to `FmtContext` (#420, #425) (BREAKING) 314- **fmt**: Renamed `Builder` to `SubscriberBuilder` (#420) (BREAKING) 315- **fmt**: Reimplemented `fmt::Subscriber` in terms of the `Registry` 316 and `Layer`s (#420) 317 318### Removed 319 320- **filter**: Removed `Filter`. Use `EnvFilter` instead (#434) (BREAKING) 321 322### Fixed 323 324- **fmt**: Fixed memory leaks in the slab used to store per-span data 325 (3c35048) 326- **fmt**: `fmt::SubscriberBuilder::init` not setting up `log` compatibility 327 (#489) 328- **fmt**: Spans closed by a child span closing not also closing _their_ 329 parents (#514) 330- **Layer**: Fixed `Layered` subscribers failing to downcast to their own type 331 (#549) 332- **Layer**: Fixed `Layer::downcast_ref` returning invalid references (#454) 333 334# 0.2.0-alpha.6 (February 3, 2020) 335 336### Fixed 337 338- **fmt**: Fixed empty `{}` printed after spans with no fields (f079f2d) 339- **fmt**: Fixed inconsistent formatting when ANSI colors are disabled (506a482) 340- **fmt**: Fixed mis-aligned levels when ANSI colors are disabled (eba1adb) 341- Fixed warnings on nightly Rust compilers (#558) 342 343# 0.2.0-alpha.5 (January 31, 2020) 344 345### Added 346 347- **env_filter**: Documentation for filtering directives (#554) 348- **registry**, **env_filter**: Updated `smallvec` dependency to 0.1 (#543) 349 350### Fixed 351 352- **registry**: Fixed a memory leak in the slab used to store per-span data 353 (3c35048) 354- **Layer**: Fixed `Layered` subscribers failing to downcast to their own type 355 (#549) 356- **fmt**: Fixed a panic when multiple layers insert `FormattedFields` 357 extensions from the same formatter type (1c3bb70) 358- **fmt**: Fixed `fmt::Layer::on_record` inserting a new `FormattedFields` when 359 formatted fields for a span already exist (1c3bb70) 360 361# 0.2.0-alpha.4 (January 11, 2020) 362 363### Fixed 364 365- **registry**: Removed inadvertently committed `dbg!` macros (#533) 366 367# 0.2.0-alpha.3 (January 10, 2020) 368 369### Added 370 371- **fmt**: Public `FormattedFields::new` constructor (#478) 372- **fmt**: Added examples to `fmt::Layer` documentation (#510) 373- Documentation now shows what feature flags are required by each API item (#525) 374 375### Fixed 376 377- **fmt**: Missing space between timestamp and level (#480) 378- **fmt**: Incorrect formatting with `with_target(false)` (#481) 379- **fmt**: `fmt::SubscriberBuilder::init` not setting up `log` compatibility 380 (#489) 381- **registry**: Spans exited out of order not being closed properly on exit 382 (#509) 383- **registry**: Memory leak when spans are closed by a child span closing (#514) 384- **registry**: Spans closed by a child span closing not also closing _their_ 385 parents (#514) 386- Compilation errors with `no-default-features` (#499, #500) 387 388# 0.2.0-alpha.2 (December 8, 2019) 389 390### Added 391 392- `LookupSpans` implementation for `Layered` (#448) 393- `SpanRef::from_root` to iterate over a span's parents from the root (#460) 394- `Context::scope`, to iterate over the current context from the root (#460) 395- `Context::lookup_current`, which returns a `SpanRef` to the current 396 span's data (#460) 397 398### Changed 399 400- Lifetimes on some new `Context` methods to be less restrictive (#460) 401 402### Fixed 403 404- `Layer::downcast_ref` returning invalid references (#454) 405- Compilation failure on 32-bit platforms (#462) 406- Compilation failure with ANSI formatters (#438) 407 408# 0.2.0-alpha.1 (November 18, 2019) 409 410### Added 411 412- `Registry`, a reusable span store that `Layer`s can use a 413 high-performance, in-memory store. (#420, #425, #432, #433, #435) 414- Reimplemented `fmt::Subscriber` in terms of the `Registry` 415 and `Layer`s (#420) 416- Add benchmarks for fmt subscriber (#421) 417- Add support for JSON field and event formatting (#377, #415) 418 419### Changed 420 421- **BREAKING**: Change `fmt::format::FormatFields` and 422 `fmt::format::FormatEvent` to accept a mandatory `FmtContext`. These 423 `FormatFields` and `FormatEvent` will likely see additional breaking 424 changes in subsequent alpha. (#420, #425) 425- **BREAKING**: Removed `Filter`. Use `EnvFilter` instead (#434) 426 427### Contributers 428 429Thanks to all the contributers to this release! 430 431- @pimeys for #377 and #415 432 433# 0.1.6 (October 29, 2019) 434 435### Added 436 437- Add `init` and `try_init` functions to `FmtSubscriber` (#385) 438- Add `ChronoUtc` and `ChronoLocal` timers, RFC 3339 support (#387) 439- Add `tracing::subscriber::set_default` which sets the default 440 subscriber and returns a drop guard. This drop guard will reset the 441 dispatch on drop (#388). 442 443### Fixed 444 445- Fix default level for `EnvFilter`. Setting `RUST_LOG=target` 446 previously only the `ERROR` level, while it should enable everything. 447 `tracing-subscriber` now defaults to `TRACE` if no level is specified 448 (#401) 449- Fix `tracing-log` feature flag for init + try_init. The feature flag 450 `tracing_log` was used instead of the correct `tracing-log`. As a 451 result, both `tracing-log` and `tracing_log` needed to be specified in 452 order to initialize the global logger. Only `tracing-log` needs to be 453 specified now (#400). 454 455### Contributers 456 457Thanks to all the contributers to this release! 458 459- @emschwartz for #385, #387, #400 and #401 460- @bIgBV for #388 461 462# 0.1.5 (October 7, 2019) 463 464### Fixed 465 466- Spans not being closed properly when `FmtSubscriber::current_span` is used 467 (#371) 468 469# 0.1.4 (September 26, 2019) 470 471### Fixed 472 473- Spans entered twice on the same thread sometimes being completely exited when 474 the more deeply-nested entry is exited (#361) 475- Setting `with_ansi(false)` on `FmtSubscriber` not disabling ANSI color 476 formatting for timestamps (#354) 477- Incorrect reference counting in `FmtSubscriber` that could cause spans to not 478 be closed when all references are dropped (#366) 479 480# 0.1.3 (September 16, 2019) 481 482### Fixed 483 484- `Layered` subscribers not properly forwarding calls to `current_span` 485 (#350) 486 487# 0.1.2 (September 12, 2019) 488 489### Fixed 490 491- `EnvFilter` ignoring directives with targets that are the same number of 492 characters (#333) 493- `EnvFilter` failing to properly apply filter directives to events generated 494 from `log` records by`tracing-log` (#344) 495 496### Changed 497 498- Renamed `Filter` to `EnvFilter`, deprecated `Filter` (#339) 499- Renamed "filter" feature flag to "env-filter", deprecated "filter" (#339) 500- `FmtSubscriber` now defaults to enabling only the `INFO` level and above when 501 a max level filter or `EnvFilter` is not set (#336) 502- Made `parking_lot` dependency an opt-in feature flag (#348) 503 504### Added 505 506- `EnvFilter::add_directive` to add new directives to filters after they are 507 constructed (#334) 508- `fmt::Builder::with_max_level` to set a global level filter for a 509 `FmtSubscriber` without requiring the use of `EnvFilter` (#336) 510- `Layer` implementation for `LevelFilter` (#336) 511- `EnvFilter` now implements `fmt::Display` (#329) 512 513### Removed 514 515- Removed dependency on `crossbeam-util` (#348) 516 517# 0.1.1 (September 4, 2019) 518 519### Fixed 520 521- Potential double panic in `CurrentSpan` (#325) 522 523# 0.1.0 (September 3, 2019) 524 525- Initial release 526