1# 0.1.26 (April 30, 2021) 2 3### Fixed 4 5- **attributes**: Compatibility between `#[instrument]` and `async-trait` 6 v0.1.43 and newer ([#1228]) 7- Several documentation fixes ([#1305], [#1344]) 8### Added 9 10- `Subscriber` impl for `Box<dyn Subscriber + Send + Sync + 'static>` ([#1358]) 11- `Subscriber` impl for `Arc<dyn Subscriber + Send + Sync + 'static>` ([#1374]) 12- Symmetric `From` impls for existing `Into` impls on `span::Current`, `Span`, 13 and `Option<Id>` ([#1335], [#1338]) 14- `From<EnteredSpan>` implementation for `Option<Id>`, allowing `EnteredSpan` to 15 be used in a `span!` macro's `parent:` field ([#1325]) 16- `Attributes::fields` accessor that returns the set of fields defined on a 17 span's `Attributes` ([#1331]) 18 19 20Thanks to @Folyd, @nightmared, and new contributors @rmsc and @Fishrock123 for 21contributing to this release! 22 23[#1227]: https://github.com/tokio-rs/tracing/pull/1228 24[#1305]: https://github.com/tokio-rs/tracing/pull/1305 25[#1325]: https://github.com/tokio-rs/tracing/pull/1325 26[#1338]: https://github.com/tokio-rs/tracing/pull/1338 27[#1344]: https://github.com/tokio-rs/tracing/pull/1344 28[#1358]: https://github.com/tokio-rs/tracing/pull/1358 29[#1374]: https://github.com/tokio-rs/tracing/pull/1374 30[#1335]: https://github.com/tokio-rs/tracing/pull/1335 31[#1331]: https://github.com/tokio-rs/tracing/pull/1331 32 33# 0.1.25 (February 23, 2021) 34 35### Added 36 37- `Span::entered` method for entering a span and moving it into a guard by value 38 rather than borrowing it ([#1252]) 39 40Thanks to @matklad for contributing to this release! 41 42[#1252]: https://github.com/tokio-rs/tracing/pull/1252 43 44# 0.1.24 (February 17, 2021) 45 46### Fixed 47 48- **attributes**: Compiler error when using `#[instrument(err)]` on functions 49 which return `impl Trait` ([#1236]) 50- Fixed broken match arms in event macros ([#1239]) 51- Documentation improvements ([#1232]) 52 53Thanks to @bkchr and @lfranke for contributing to this release! 54 55[#1236]: https://github.com/tokio-rs/tracing/pull/1236 56[#1239]: https://github.com/tokio-rs/tracing/pull/1239 57[#1232]: https://github.com/tokio-rs/tracing/pull/1232 58 59# 0.1.23 (February 4, 2021) 60 61### Fixed 62 63- **attributes**: Compiler error when using `#[instrument(err)]` on functions 64 with mutable parameters ([#1167]) 65- **attributes**: Missing function visibility modifier when using 66 `#[instrument]` with `async-trait` ([#977]) 67- **attributes** Removed unused `syn` features ([#928]) 68- **log**: Fixed an issue where the `tracing` macros would generate code for 69 events whose levels are disabled statically by the `log` crate's 70 `static_max_level_XXX` features ([#1175]) 71- Fixed deprecations and clippy lints ([#1195]) 72- Several documentation fixes and improvements ([#941], [#965], [#981], [#1146], 73 [#1215]) 74 75### Changed 76 77- **attributes**: `tracing-futures` dependency is no longer required when using 78 `#[instrument]` on async functions ([#808]) 79- **attributes**: Updated `tracing-attributes` minimum dependency to v0.1.12 80 ([#1222]) 81 82Thanks to @nagisa, @Txuritan, @TaKO8Ki, @okready, and @krojew for contributing 83to this release! 84 85[#1167]: https://github.com/tokio-rs/tracing/pull/1167 86[#977]: https://github.com/tokio-rs/tracing/pull/977 87[#965]: https://github.com/tokio-rs/tracing/pull/965 88[#981]: https://github.com/tokio-rs/tracing/pull/981 89[#1215]: https://github.com/tokio-rs/tracing/pull/1215 90[#808]: https://github.com/tokio-rs/tracing/pull/808 91[#941]: https://github.com/tokio-rs/tracing/pull/941 92[#1146]: https://github.com/tokio-rs/tracing/pull/1146 93[#1175]: https://github.com/tokio-rs/tracing/pull/1175 94[#1195]: https://github.com/tokio-rs/tracing/pull/1195 95[#1222]: https://github.com/tokio-rs/tracing/pull/1222 96 97# 0.1.22 (November 23, 2020) 98 99### Changed 100 101- Updated `pin-project-lite` dependency to 0.2 ([#1108]) 102 103[#1108]: https://github.com/tokio-rs/tracing/pull/1108 104 105# 0.1.21 (September 28, 2020) 106 107### Fixed 108 109- Incorrect inlining of `Span::new`, `Span::new_root`, and `Span::new_child_of`, 110 which could result in `dispatcher::get_default` being inlined at the callsite 111 ([#994]) 112- Regression where using a struct field as a span or event field when other 113 fields on that struct are borrowed mutably would fail to compile ([#987]) 114 115### Changed 116 117- Updated `tracing-core` to 0.1.17 ([#992]) 118 119### Added 120 121- `Instrument` trait and `Instrumented` type for attaching a `Span` to a 122 `Future` ([#808]) 123- `Copy` implementations for `Level` and `LevelFilter` ([#992]) 124- Multiple documentation fixes and improvements ([#964], [#980], [#981]) 125 126Thanks to @nagisa, and new contributors @SecurityInsanity, @froydnj, @jyn514 and 127@TaKO8Ki for contributing to this release! 128 129[#994]: https://github.com/tokio-rs/tracing/pull/994 130[#992]: https://github.com/tokio-rs/tracing/pull/992 131[#987]: https://github.com/tokio-rs/tracing/pull/987 132[#980]: https://github.com/tokio-rs/tracing/pull/980 133[#981]: https://github.com/tokio-rs/tracing/pull/981 134[#964]: https://github.com/tokio-rs/tracing/pull/964 135[#808]: https://github.com/tokio-rs/tracing/pull/808 136 137# 0.1.20 (August 24, 2020) 138 139### Changed 140 141- Significantly reduced assembly generated by macro invocations (#943) 142- Updated `tracing-core` to 0.1.15 (#943) 143 144### Added 145 146- Documented minimum supported Rust version policy (#941) 147 148# 0.1.19 (August 10, 2020) 149 150### Fixed 151 152- Updated `tracing-core` to fix incorrect calculation of the global max level 153 filter (#908) 154 155### Added 156 157- **attributes**: Support for using `self` in field expressions when 158 instrumenting `async-trait` functions (#875) 159- Several documentation improvements (#832, #881, #896, #897, #911, #913) 160 161Thanks to @anton-dutov, @nightmared, @mystor, and @toshokan for contributing to 162this release! 163 164# 0.1.18 (July 31, 2020) 165 166### Fixed 167 168- Fixed a bug where `LevelFilter::OFF` (and thus also the `static_max_level_off` 169 feature flag) would enable *all* traces, rather than *none* (#853) 170- **log**: Fixed `tracing` macros and `Span`s not checking `log::max_level` 171 before emitting `log` records (#870) 172 173### Changed 174 175- **macros**: Macros now check the global max level (`LevelFilter::current`) 176 before the per-callsite cache when determining if a span or event is enabled. 177 This significantly improves performance in some use cases (#853) 178- **macros**: Simplified the code generated by macro expansion significantly, 179 which may improve compile times and/or `rustc` optimizatation of surrounding 180 code (#869, #869) 181- **macros**: Macros now check the static max level before checking any runtime 182 filtering, improving performance when a span or event is disabled by a 183 `static_max_level_XXX` feature flag (#868) 184- `LevelFilter` is now a re-export of the `tracing_core::LevelFilter` type, it 185 can now be used interchangably with the versions in `tracing-core` and 186 `tracing-subscriber` (#853) 187- Significant performance improvements when comparing `LevelFilter`s and 188 `Level`s (#853) 189- Updated the minimum `tracing-core` dependency to 0.1.12 (#853) 190 191### Added 192 193- **macros**: Quoted string literals may now be used as field names, to allow 194 fields whose names are not valid Rust identifiers (#790) 195- **docs**: Several documentation improvements (#850, #857, #841) 196- `LevelFilter::current()` function, which returns the highest level that any 197 subscriber will enable (#853) 198- `Subscriber::max_level_hint` optional trait method, for setting the value 199 returned by `LevelFilter::current()` (#853) 200 201Thanks to new contributors @cuviper, @ethanboxx, @ben0x539, @dignati, 202@colelawrence, and @rbtcollins for helping out with this release! 203 204# 0.1.17 (July 22, 2020) 205 206### Changed 207 208- **log**: Moved verbose span enter/exit log records to "tracing::span::active" 209 target, allowing them to be filtered separately (#833) 210- **log**: All span lifecycle log records without fields now have the `Trace` 211 log filter, to guard against `log` users enabling them by default with blanket 212 level filtering (#833) 213 214### Fixed 215 216- **log**/**macros**: Fixed missing implicit imports of the 217 `tracing::field::debug` and `tracing::field::display` functions inside the 218 macros when the "log" feature is enabled (#835) 219 220# 0.1.16 (July 8, 2020) 221 222### Added 223 224- **attributes**: Support for arbitrary expressions as fields in `#[instrument]` (#672) 225- **attributes**: `#[instrument]` now emits a compiler warning when ignoring unrecognized 226 input (#672, #786) 227- Improved documentation on using `tracing` in async code (#769) 228 229### Changed 230 231- Updated `tracing-core` dependency to 0.1.11 232 233### Fixed 234 235- **macros**: Excessive monomorphization in macros, which could lead to 236 longer compilation times (#787) 237- **log**: Compiler warnings in macros when `log` or `log-always` features 238 are enabled (#753) 239- Compiler error when `tracing-core/std` feature is enabled but `tracing/std` is 240 not (#760) 241 242Thanks to @nagisa for contributing to this release! 243 244# 0.1.15 (June 2, 2020) 245 246### Changed 247 248- **macros**: Replaced use of legacy `local_inner_macros` with `$crate::` (#740) 249 250### Added 251 252- Docs fixes and improvements (#742, #731, #730) 253 254Thanks to @bnjjj, @blaenk, and @LukeMathWalker for contributing to this release! 255 256# 0.1.14 (May 14, 2020) 257 258### Added 259 260- **log**: When using the [`log`] compatibility feature alongside a `tracing` 261 `Subscriber`, log records for spans now include span IDs (#613) 262- **attributes**: Support for using `#[instrument]` on methods that are part of 263 [`async-trait`] trait implementations (#711) 264- **attributes**: Optional `#[instrument(err)]` argument to automatically emit 265 an event if an instrumented function returns `Err` (#637) 266- Added `#[must_use]` attribute to the guard returned by 267 `subscriber::set_default` (#685) 268 269### Changed 270 271- **log**: Made [`log`] records emitted by spans much less noisy when span IDs are 272 not available (#613) 273 274### Fixed 275 276- Several typos in the documentation (#656, #710, #715) 277 278Thanks to @FintanH, @shepmaster, @inanna-malick, @zekisharif, @bkchr, @majecty, 279@ilana and @nightmared for contributing to this release! 280 281[`async-trait`]: https://crates.io/crates/async-trait 282[`log`]: https://crates.io/crates/log 283 284# 0.1.13 (February 26, 2019) 285 286### Added 287 288- **field**: `field::Empty` type for declaring empty fields whose values will be 289 recorded later (#548) 290- **field**: `field::Value` implementations for `Wrapping` and `NonZero*` 291 numbers (#538) 292- **attributes**: Support for adding arbitrary literal fields to spans generated 293 by `#[instrument]` (#569) 294- **attributes**: `#[instrument]` now emits a helpful compiler error when 295 attempting to skip a function parameter (#600) 296 297### Changed 298 299- **attributes**: The `#[instrument]` attribute was placed under an on-by-default 300 feature flag "attributes" (#603) 301 302### Fixed 303 304- Broken and unresolvable links in RustDoc (#595) 305 306Thanks to @oli-cosmian and @Kobzol for contributing to this release! 307 308# 0.1.12 (January 11, 2019) 309 310### Added 311 312- `Span::with_subscriber` method to access the subscriber that tracks a `Span` 313 (#503) 314- API documentation now shows which features are required by feature-flagged 315 items (#523) 316- Improved README examples (#496) 317- Documentation links to related crates (#507) 318 319# 0.1.11 (December 20, 2019) 320 321### Added 322 323- `Span::is_none` method (#475) 324- `LevelFilter::into_level` method (#470) 325- `LevelFilter::from_level` function and `From<Level>` impl (#471) 326- Documented minimum supported Rust version (#482) 327 328### Fixed 329 330- Incorrect parameter type to `Span::follows_from` that made it impossible to 331 call (#467) 332- Missing whitespace in `log` records generated when enabling the `log` feature 333 flag (#484) 334- Typos and missing links in documentation (#405, #423, #439) 335 336# 0.1.10 (October 23, 2019) 337 338### Added 339 340- Support for destructuring in arguments to `#[instrument]`ed functions (#397) 341- Generated field for `self` parameters when `#[instrument]`ing methods (#397) 342- Optional `skip` argument to `#[instrument]` for excluding function parameters 343 from generated spans (#359) 344- Added `dispatcher::set_default` and `subscriber::set_default` APIs, which 345 return a drop guard (#388) 346 347### Fixed 348 349- Some minor documentation errors (#356, #370) 350 351# 0.1.9 (September 13, 2019) 352 353### Fixed 354 355- Fixed `#[instrument]`ed async functions not compiling on `nightly-2019-09-11` 356 or newer (#342) 357 358### Changed 359 360- Significantly reduced performance impact of skipped spans and events when a 361 `Subscriber` is not in use (#326) 362- The `log` feature will now only cause `tracing` spans and events to emit log 363 records when a `Subscriber` is not in use (#346) 364 365### Added 366 367- Added support for overriding the name of the span generated by `#[instrument]` 368 (#330) 369- `log-always` feature flag to emit log records even when a `Subscriber` is set 370 (#346) 371 372# 0.1.8 (September 3, 2019) 373 374### Changed 375 376- Reorganized and improved API documentation (#317) 377 378### Removed 379 380- Dev-dependencies on `ansi_term` and `humantime` crates, which were used only 381 for examples (#316) 382 383# 0.1.7 (August 30, 2019) 384 385### Changed 386 387- New (curly-brace free) event message syntax to place the message in the first 388 field rather than the last (#309) 389 390### Fixed 391 392- Fixed a regression causing macro stack exhaustion when the `log` feature flag 393 is enabled (#304) 394 395# 0.1.6 (August 20, 2019) 396 397### Added 398 399- `std::error::Error` as a new primitive type (#277) 400- Support for mixing key-value fields and `format_args` messages without curly 401 braces as delimiters (#288) 402 403### Changed 404 405- `tracing-core` dependency to 0.1.5 (#294) 406- `tracing-attributes` dependency to 0.1.2 (#297) 407 408# 0.1.5 (August 9, 2019) 409 410### Added 411 412- Support for `no-std` + `liballoc` (#263) 413 414### Changed 415 416- Using the `#[instrument]` attribute on `async fn`s no longer requires a 417 feature flag (#258) 418 419### Fixed 420 421- The `#[instrument]` macro now works on generic functions (#262) 422 423# 0.1.4 (August 8, 2019) 424 425### Added 426 427- `#[instrument]` attribute for automatically adding spans to functions (#253) 428 429# 0.1.3 (July 11, 2019) 430 431### Added 432 433- Log messages when a subscriber indicates that a span has closed, when the 434 `log` feature flag is enabled (#180). 435 436### Changed 437 438- `tracing-core` minimum dependency version to 0.1.2 (#174). 439 440### Fixed 441 442- Fixed an issue where event macro invocations with a single field, using local 443 variable shorthand, would recur infinitely (#166). 444- Fixed uses of deprecated `tracing-core` APIs (#174). 445 446# 0.1.2 (July 6, 2019) 447 448### Added 449 450- `Span::none()` constructor, which does not require metadata and 451 returns a completely empty span (#147). 452- `Span::current()` function, returning the current span if it is 453 known to the subscriber (#148). 454 455### Fixed 456 457- Broken macro imports when used prefixed with `tracing::` (#152). 458 459# 0.1.1 (July 3, 2019) 460 461### Changed 462 463- `cfg_if` dependency to 0.1.9. 464 465### Fixed 466 467- Compilation errors when the `log` feature is enabled (#131). 468- Unclear wording and typos in documentation (#124, #128, #142). 469 470# 0.1.0 (June 27, 2019) 471 472- Initial release 473