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