1# 0.1.32 (October 13, 2023)
2
3### Documented
4
5- Fix typo in `field` docs ([#2611])
6- Remove duplicate wording ([#2674])
7
8### Changed
9
10- Allow `ValueSet`s of any length ([#2508])
11
12[#2611]: https://github.com/tokio-rs/tracing/pull/2611
13[#2674]: https://github.com/tokio-rs/tracing/pull/2674
14[#2508]: https://github.com/tokio-rs/tracing/pull/2508
15
16# 0.1.31 (May 11, 2023)
17
18This release of `tracing-core` fixes a bug that caused threads which call
19`dispatcher::get_default` _before_ a global default subscriber is set to never
20see the global default once it is set. In addition, it includes improvements for
21instrumentation performance in some cases, especially when using a global
22default dispatcher.
23
24### Fixed
25
26- Fixed incorrect thread-local caching of `Dispatch::none` if
27  `dispatcher::get_default` is called before `dispatcher::set_global_default`
28  ([#2593])
29
30### Changed
31
32- Cloning a `Dispatch` that points at a global default subscriber no longer
33  requires an `Arc` reference count increment, improving performance
34  substantially ([#2593])
35- `dispatcher::get_default` no longer attempts to access a thread local if the
36  scoped dispatcher is not in use, improving performance when the default
37  dispatcher is global ([#2593])
38- Added `#[inline]` annotations called by the `event!` and `span!` macros to
39  reduce the size of macro-generated code and improve recording performance
40  ([#2555])
41
42Thanks to new contributor @ldm0 for contributing to this release!
43
44[#2593]: https://github.com/tokio-rs/tracing/pull/2593
45[#2555]: https://github.com/tokio-rs/tracing/pull/2555
46
47# 0.1.30 (October 6, 2022)
48
49This release of `tracing-core` adds a new `on_register_dispatch` method to the
50`Subscriber` trait to allow the `Subscriber` to perform initialization after
51being registered as a `Dispatch`, and a `WeakDispatch` type to allow a
52`Subscriber` to store its own `Dispatch` without creating reference count
53cycles.
54
55### Added
56
57- `Subscriber::on_register_dispatch` method ([#2269])
58- `WeakDispatch` type and `Dispatch::downgrade()` function ([#2293])
59
60Thanks to @jswrenn for contributing to this release!
61
62[#2269]: https://github.com/tokio-rs/tracing/pull/2269
63[#2293]: https://github.com/tokio-rs/tracing/pull/2293
64
65# 0.1.29 (July 29, 2022)
66
67This release of `tracing-core` adds `PartialEq` and `Eq` implementations for
68metadata types, and improves error messages when setting the global default
69subscriber fails.
70
71### Added
72
73- `PartialEq` and `Eq` implementations for `Metadata` ([#2229])
74- `PartialEq` and `Eq` implementations for `FieldSet` ([#2229])
75
76### Fixed
77
78- Fixed unhelpful `fmt::Debug` output for `dispatcher::SetGlobalDefaultError`
79  ([#2250])
80- Fixed compilation with `-Z minimal-versions` ([#2246])
81
82Thanks to @jswrenn and @CAD97 for contributing to this release!
83
84[#2229]: https://github.com/tokio-rs/tracing/pull/2229
85[#2246]: https://github.com/tokio-rs/tracing/pull/2246
86[#2250]: https://github.com/tokio-rs/tracing/pull/2250
87
88# 0.1.28 (June 23, 2022)
89
90This release of `tracing-core` adds new `Value` implementations, including one
91for `String`, to allow recording `&String` as a value without having to call
92`as_str()` or similar, and for 128-bit integers (`i128` and `u128`). In
93addition, it adds new methods and trait implementations for `Subscriber`s.
94
95### Added
96
97- `Value` implementation for `String` ([#2164])
98- `Value` implementation for `u128` and `i28` ([#2166])
99- `downcast_ref` and `is` methods for `dyn Subscriber + Sync`,
100  `dyn Subscriber + Send`, and `dyn Subscriber + Send + Sync` ([#2160])
101- `Subscriber::event_enabled` method to enable filtering based on `Event` field
102  values ([#2008])
103- `Subscriber` implementation for `Box<S: Subscriber + ?Sized>` and
104  `Arc<S: Subscriber + ?Sized>` ([#2161])
105
106Thanks to @jswrenn and @CAD97 for contributing to this release!
107
108[#2164]: https://github.com/tokio-rs/tracing/pull/2164
109[#2166]: https://github.com/tokio-rs/tracing/pull/2166
110[#2160]: https://github.com/tokio-rs/tracing/pull/2160
111[#2008]: https://github.com/tokio-rs/tracing/pull/2008
112[#2161]: https://github.com/tokio-rs/tracing/pull/2161
113
114# 0.1.27 (June 7, 2022)
115
116This release of `tracing-core` introduces a new `DefaultCallsite` type, which
117can be used by instrumentation crates rather than implementing their own
118callsite types. Using `DefaultCallsite` may offer reduced overhead from callsite
119registration.
120
121### Added
122
123- `DefaultCallsite`, a pre-written `Callsite` implementation for use in
124  instrumentation crates ([#2083])
125- `ValueSet::len` and `Record::len` methods returning the number of fields in a
126  `ValueSet` or `Record` ([#2152])
127
128### Changed
129
130- Replaced `lazy_static` dependency with `once_cell` ([#2147])
131
132### Documented
133
134- Added documentation to the `callsite` module ([#2088], [#2149])
135
136Thanks to new contributors @jamesmunns and @james7132 for contributing to this
137release!
138
139[#2083]: https://github.com/tokio-rs/tracing/pull/2083
140[#2152]: https://github.com/tokio-rs/tracing/pull/2152
141[#2147]: https://github.com/tokio-rs/tracing/pull/2147
142[#2088]: https://github.com/tokio-rs/tracing/pull/2088
143[#2149]: https://github.com/tokio-rs/tracing/pull/2149
144
145# 0.1.26 (April 14, 2022)
146
147This release adds a `Value` implementation for `Box<T: Value>` to allow
148recording boxed values more conveniently. In particular, this should improve
149the ergonomics of the implementations for `dyn std::error::Error` trait objects,
150including those added in [v0.1.25].
151
152### Added
153
154- `Value` implementation for `Box<T> where T: Value` ([#2071])
155
156### Fixed
157
158- Broken documentation links ([#2068])
159
160Thanks to new contributor @ben0x539 for contributing to this release!
161
162
163[v0.1.25]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.25
164[#2071]: https://github.com/tokio-rs/tracing/pull/2071
165[#2068]: https://github.com/tokio-rs/tracing/pull/2068
166
167# 0.1.25 (April 12, 2022)
168
169This release adds additional `Value` implementations for `std::error::Error`
170trait objects with auto trait bounds (`Send` and `Sync`), as Rust will not
171auto-coerce trait objects. Additionally, it fixes a bug when setting scoped
172dispatchers that was introduced in the previous release ([v0.1.24]).
173
174### Added
175
176- `Value` implementations for `dyn Error + Send + 'static`, `dyn Error + Send +
177  Sync + 'static`, `dyn Error + Sync + 'static` ([#2066])
178
179### Fixed
180
181- Failure to use the global default dispatcher if a thread has set a scoped
182  default prior to setting the global default, and unset the scoped default
183  after setting the global default ([#2065])
184
185Thanks to @lilyball for contributing to this release!
186
187[v0.1.24]: https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.24
188[#2066]: https://github.com/tokio-rs/tracing/pull/2066
189[#2065]: https://github.com/tokio-rs/tracing/pull/2065
190
191# 0.1.24 (April 1, 2022)
192
193This release fixes a bug where setting `NoSubscriber` as the local default would
194not disable the global default subscriber locally.
195
196### Fixed
197
198- Setting `NoSubscriber` as the local default now correctly disables the global
199  default subscriber ([#2001])
200- Fixed compilation warnings with the "std" feature disabled ([#2022])
201
202### Changed
203
204- Removed unnecessary use of `write!` and `format_args!` macros ([#1988])
205
206[#1988]: https://github.com/tokio-rs/tracing/pull/1988
207[#2001]: https://github.com/tokio-rs/tracing/pull/2001
208[#2022]: https://github.com/tokio-rs/tracing/pull/2022
209
210# 0.1.23 (March 8, 2022)
211
212### Changed
213
214- Removed `#[inline]` attributes from some `Dispatch` methods whose
215  callers are now inlined ([#1974])
216- Bumped minimum supported Rust version (MSRV) to Rust 1.49.0 ([#1913])
217
218[#1913]: https://github.com/tokio-rs/tracing/pull/1913
219[#1974]: https://github.com/tokio-rs/tracing/pull/1974
220
221# 0.1.22 (February 3, 2022)
222
223This release adds *experimental* support for recording structured field values
224using the [`valuable`] crate. See [this blog post][post] for details on
225`valuable`.
226
227Note that `valuable` support currently requires `--cfg tracing_unstable`. See
228the documentation for details.
229
230### Added
231
232- **field**: Experimental support for recording field values using the
233  [`valuable`] crate ([#1608], [#1888], [#1887])
234- **field**: Added `ValueSet::record` method ([#1823])
235- **subscriber**: `Default` impl for `NoSubscriber` ([#1785])
236- **metadata**: New `Kind::HINT` to support the `enabled!` macro in `tracing`
237  ([#1883], [#1891])
238### Fixed
239
240- Fixed a number of documentation issues ([#1665], [#1692], [#1737])
241
242Thanks to @xd009642, @Skepfyr, @guswynn, @Folyd, and @mbergkvist for
243contributing to this release!
244
245[`valuable`]: https://crates.io/crates/valuable
246[post]: https://tokio.rs/blog/2021-05-valuable
247[#1608]: https://github.com/tokio-rs/tracing/pull/1608
248[#1888]: https://github.com/tokio-rs/tracing/pull/1888
249[#1887]: https://github.com/tokio-rs/tracing/pull/1887
250[#1823]: https://github.com/tokio-rs/tracing/pull/1823
251[#1785]: https://github.com/tokio-rs/tracing/pull/1785
252[#1883]: https://github.com/tokio-rs/tracing/pull/1883
253[#1891]: https://github.com/tokio-rs/tracing/pull/1891
254[#1665]: https://github.com/tokio-rs/tracing/pull/1665
255[#1692]: https://github.com/tokio-rs/tracing/pull/1692
256[#1737]: https://github.com/tokio-rs/tracing/pull/1737
257
258# 0.1.21 (October 1, 2021)
259
260This release adds support for recording `Option<T> where T: Value` as typed
261`tracing` field values.
262
263### Added
264
265- **field**: `Value` impl for `Option<T> where T: Value` ([#1585])
266
267### Fixed
268
269- Fixed deprecation warnings when building with `default-features` disabled
270  ([#1603], [#1606])
271- Documentation fixes and improvements ([#1595], [#1601])
272
273Thanks to @brianburgers, @DCjanus, and @matklad for contributing to this
274release!
275
276[#1585]: https://github.com/tokio-rs/tracing/pull/1585
277[#1595]: https://github.com/tokio-rs/tracing/pull/1595
278[#1601]: https://github.com/tokio-rs/tracing/pull/1601
279[#1603]: https://github.com/tokio-rs/tracing/pull/1603
280[#1606]: https://github.com/tokio-rs/tracing/pull/1606
281
282# 0.1.20 (September 12, 2021)
283
284This release adds support for `f64` as one of the `tracing-core`
285primitive field values, allowing floating-point values to be recorded as
286typed values rather than with `fmt::Debug`. Additionally, it adds
287`NoSubscriber`, a `Subscriber` implementation that does nothing.
288
289### Added
290
291- **subscriber**: `NoSubscriber`, a no-op `Subscriber` implementation
292  ([#1549])
293- **field**: Added `Visit::record_f64` and support for recording
294  floating-point values ([#1507])
295
296Thanks to new contributors @jsgf and @maxburke for contributing to this
297release!
298
299[#1549]: https://github.com/tokio-rs/tracing/pull/1549
300[#1507]: https://github.com/tokio-rs/tracing/pull/1507
301
302# 0.1.19 (August 17, 2021)
303### Added
304
305- `Level::as_str` ([#1413])
306- `Hash` implementation for `Level` and `LevelFilter` ([#1456])
307- `Value` implementation for `&mut T where T: Value` ([#1385])
308- Multiple documentation fixes and improvements ([#1435], [#1446])
309
310Thanks to @Folyd, @teozkr, and @dvdplm for contributing to this release!
311
312[#1413]: https://github.com/tokio-rs/tracing/pull/1413
313[#1456]: https://github.com/tokio-rs/tracing/pull/1456
314[#1385]: https://github.com/tokio-rs/tracing/pull/1385
315[#1435]: https://github.com/tokio-rs/tracing/pull/1435
316[#1446]: https://github.com/tokio-rs/tracing/pull/1446
317
318# 0.1.18 (April 30, 2021)
319
320### Added
321
322- `Subscriber` impl for `Box<dyn Subscriber + Send + Sync + 'static>` ([#1358])
323- `Subscriber` impl for `Arc<dyn Subscriber + Send + Sync + 'static>` ([#1374])
324- Symmetric `From` impls for existing `Into` impls on `Current` and `Option<Id>`
325  ([#1335])
326- `Attributes::fields` accessor that returns the set of fields defined on a
327  span's `Attributes` ([#1331])
328
329
330Thanks to @Folyd for contributing to this release!
331
332[#1358]: https://github.com/tokio-rs/tracing/pull/1358
333[#1374]: https://github.com/tokio-rs/tracing/pull/1374
334[#1335]: https://github.com/tokio-rs/tracing/pull/1335
335[#1331]: https://github.com/tokio-rs/tracing/pull/1331
336
337# 0.1.17 (September 28, 2020)
338
339### Fixed
340
341- Incorrect inlining of `Event::dispatch` and `Event::child_of`, which could
342  result in `dispatcher::get_default` being inlined at the callsite ([#994])
343
344### Added
345
346- `Copy` implementations for `Level` and `LevelFilter` ([#992])
347
348Thanks to new contributors @jyn514 and @TaKO8Ki for contributing to this
349release!
350
351[#994]: https://github.com/tokio-rs/tracing/pull/994
352[#992]: https://github.com/tokio-rs/tracing/pull/992
353
354# 0.1.16 (September 8, 2020)
355
356### Fixed
357
358- Added a conversion from `Option<Level>` to `LevelFilter`. This resolves a
359  previously unreported regression where `Option<Level>` was no longer
360  a valid LevelFilter. ([#966](https://github.com/tokio-rs/tracing/pull/966))
361
362# 0.1.15 (August 22, 2020)
363
364### Fixed
365
366- When combining `Interest` from multiple subscribers, if the interests differ,
367  the current subscriber is now always asked if a callsite should be enabled
368  (#927)
369
370## Added
371
372- Internal API changes to support optimizations in the `tracing` crate (#943)
373- **docs**: Multiple fixes and improvements (#913, #941)
374
375# 0.1.14 (August 10, 2020)
376
377### Fixed
378
379- Incorrect calculation of global max level filter which could result in fast
380  filtering paths not being taken (#908)
381
382# 0.1.13 (August 4, 2020)
383
384### Fixed
385
386- Missing `fmt::Display` impl for `field::DisplayValue` causing a compilation
387  failure when the "log" feature is enabled (#887)
388
389Thanks to @d-e-s-o for contributing to this release!
390
391# 0.1.12 (July 31, 2020)
392
393### Added
394
395- `LevelFilter` type and `LevelFilter::current()` for returning the highest level
396  that any subscriber will enable (#853)
397- `Subscriber::max_level_hint` optional trait method, for setting the value
398  returned by `LevelFilter::current()` (#853)
399
400### Fixed
401
402- **docs**: Removed outdated reference to a Tokio API that no longer exists
403  (#857)
404
405Thanks to new contributor @dignati for contributing to this release!
406
407# 0.1.11 (June 8, 2020)
408
409### Changed
410
411- Replaced use of `inner_local_macros` with `$crate::` (#729)
412
413### Added
414
415- `must_use` warning to guards returned by `dispatcher::set_default` (#686)
416- `fmt::Debug` impl to `dyn Value`s (#696)
417- Functions to convert between `span::Id` and `NonZeroU64` (#770)
418- More obvious warnings in documentation (#769)
419
420### Fixed
421
422- Compiler error when `tracing-core/std` feature is enabled but `tracing/std` is
423  not (#760)
424- Clippy warning on vtable address comparison in `callsite::Identifier` (#749)
425- Documentation formatting issues (#715, #771)
426
427Thanks to @bkchr, @majecty, @taiki-e, @nagisa, and @nvzqz for contributing to
428this release!
429
430# 0.1.10 (January 24, 2020)
431
432### Added
433
434- `field::Empty` type for declaring empty fields whose values will be recorded
435  later (#548)
436- `field::Value` implementations for `Wrapping` and `NonZero*` numbers (#538)
437
438### Fixed
439
440- Broken and unresolvable links in RustDoc (#595)
441
442Thanks to @oli-cosmian for contributing to this release!
443
444# 0.1.9 (January 10, 2020)
445
446### Added
447
448- API docs now show what feature flags are required to enable each item (#523)
449
450### Fixed
451
452- A panic when the current default subscriber subscriber calls
453  `dispatcher::with_default` as it is being dropped (#522)
454- Incorrect documentation for `Subscriber::drop_span` (#524)
455
456# 0.1.8 (December 20, 2019)
457
458### Added
459
460- `Default` impl for `Dispatch` (#411)
461
462### Fixed
463
464- Removed duplicate `lazy_static` dependencies (#424)
465- Fixed no-std dependencies being enabled even when `std` feature flag is set
466  (#424)
467- Broken link to `Metadata` in `Event` docs (#461)
468
469# 0.1.7 (October 18, 2019)
470
471### Added
472
473- Added `dispatcher::set_default` API which returns a drop guard (#388)
474
475### Fixed
476
477- Added missing `Value` impl for `u8` (#392)
478- Broken links in docs.
479
480# 0.1.6 (September 12, 2019)
481
482### Added
483
484- Internal APIs to support performance optimizations (#326)
485
486### Fixed
487
488- Clarified wording in `field::display` documentation (#340)
489
490# 0.1.5 (August 16, 2019)
491
492### Added
493
494- `std::error::Error` as a new primitive `Value` type (#277)
495- `Event::new` and `Event::new_child_of` to manually construct `Event`s (#281)
496
497# 0.1.4 (August 9, 2019)
498
499### Added
500
501- Support for `no-std` + `liballoc` (#256)
502
503### Fixed
504
505- Broken links in RustDoc (#259)
506
507# 0.1.3 (August 8, 2019)
508
509### Added
510
511- `std::fmt::Display` implementation for `Level` (#194)
512- `std::str::FromStr` implementation for `Level` (#195)
513
514# 0.1.2 (July 10, 2019)
515
516### Deprecated
517
518- `Subscriber::drop_span` in favor of new `Subscriber::try_close` (#168)
519
520### Added
521
522- `Into<Option<&Id>>`, `Into<Option<Id>>`, and
523  `Into<Option<&'static Metadata<'static>>>` impls for `span::Current` (#170)
524- `Subscriber::try_close` method (#153)
525- Improved documentation for `dispatcher` (#171)
526
527# 0.1.1 (July 6, 2019)
528
529### Added
530
531- `Subscriber::current_span` API to return the current span (#148).
532- `span::Current` type, representing the `Subscriber`'s view of the current
533  span (#148).
534
535### Fixed
536
537- Typos and broken links in documentation (#123, #124, #128, #154)
538
539# 0.1.0 (June 27, 2019)
540
541- Initial release
542