
# 0.1.30 (June 17, 2025) ### Fixed - Fix `tracing::instrument` regression around shadowing ([#3311]) [#3311]: https://github.com/tokio-rs/tracing/pull/3311
14 KiB
0.1.30 (June 17, 2025)
Fixed
- Fix
tracing::instrument
regression around shadowing (#3311)
0.1.29 (June 6, 2025)
Changed
- Bump MSRV to 1.65 (#3033)
Fixed
- Let
dead_code
lint work on#[instrument]
ed functions (#3108) - Globally qualify attribute paths (#3126)
0.1.28 (November 26, 2024)
Changed
- Bump MSRV to 1.63 (#2793)
Fixed
- Added missing RecordTypes for instrument (#2781)
- Change order of async and unsafe modifier (#2864)
- Extract match scrutinee (#2880)
- Allow field path segments to be keywords (#2925)
- Support const values for
target
andname
(#2941)
Documented
- Fix backporting error in attributes (#2780)
0.1.27 (October 13, 2023)
Changed
- Bump minimum version of proc-macro2 to 1.0.60 (#2732)
- Generate less dead code for async block return type hint (#2709)
Fixed
- Fix a compilation error in
#[instrument]
when the"log"
feature is enabled (#2599)
0.1.26 (June 21th, 2023)
This release of tracing-attributes
fixes warnings due to allow
attributes in
generated code that allow lints which may not exist on earlier versions of rustc.
Fixed
- Allow
unknown_lints
in macro-generated code ([#2626])
Thanks to @mladedav for contributing to this release!
0.1.25 (June 19th, 2023)
This release of tracing-attributes
fixes the Clippy lint
let_with_type_underscore
in code generated by the #[instrument]
attribute in Rust 1.70+.
Fixed
- Allow [
clippy::let_with_type_underscore
] in macro-generated code (#2609)
Thanks to @coolreader19 for contributing to this release!
0.1.24 (April 24th, 2023)
This release of tracing-attributes
adds support for passing an optional
level
to the err
and ret
arguments to #[instrument]
, allowing the level
of the generated return-value event to be overridden. For example,
#[instrument(err(level = "info"))]
fn my_great_function() -> Result<(), &'static str> {
// ...
}
will emit an INFO
-level event if the function returns an Err
.
In addition, this release updates the syn
dependency to v2.x.x.
Added
level
argument toerr
andret
to override the level of the generated return value event (#2335)- Improved compiler error message when
#[instrument]
is added to aconst fn
(#2418)
Changed
- Updated
syn
dependency to 2.0 (#2516)
Fixed
- Fix
clippy::unreachable
warnings in#[instrument]
-generated code (#2356) - Removed unused "visit" feature flag from
syn
dependency (#2530)
Documented
Thanks to @nitnelave, @jsgf, @Abhicodes-crypto, @LukeMathWalker, @andrewpollack, @quad, @klensy, @davidpdrsn, and @dbidwell94 for contributign to this release!
0.1.23 (October 6, 2022)
This release of tracing-attributes
fixes a bug where compiler diagnostic spans
for type errors in #[instrument]
ed async fn
s have the location of the
#[instrument]
attribute rather than the location of the actual error, and a
bug where inner attributes in #[instrument]
ed functions would cause a compiler
error.
Fixed
- Fix incorrect handling of inner attributes in
#[instrument]
ed functions (#2307) - Add fake return to improve spans generated for type errors in
async fn
s (#2270) - Updated
syn
dependency to fix compilation with-Z minimal-versions
(#2246)
Thanks to new contributors @compiler-errors and @e-nomem, as well as @CAD97, for contributing to this release!
0.1.22 (July 1, 2022)
This release fixes an issue where using the err
or ret
arguments to
#[instrument]
along with an overridden target, such as
#[instrument(target = "...", err, ret)]
would not propagate the overridden target to the events generated for errors/return values.
Fixed
- Error and return value events generated by
#[instrument(err)]
or#[instrument(ret)]
not inheriting an overridden target (#2184) - Incorrect default level in documentation (#2119)
Thanks to new contributor @tbraun96 for contributing to this release!
0.1.21 (April 26, 2022)
This release adds support for setting explicit parent and follows-from spans
in the #[instrument]
attribute.
Added
#[instrument(follows_from = ...)]
argument for setting one or more follows-from span (#2093)#[instrument(parent = ...)]
argument for overriding the generated span's parent (#2091)
Fixed
- Extra braces around
async
blocks in expanded code (causes a Clippy warning) (#2090) - Broken documentation links (#2068, #2077)
Thanks to @jarrodldavis, @ben0x539, and new contributor @jswrenn for contributing to this release!
0.1.20 (March 8, 2022)
Fixed
- Compilation failure with
--minimal-versions
due to a too-permissivesyn
dependency (#1960)
Changed
- Bumped minimum supported Rust version (MSRV) to 1.49.0 (#1913)
Thanks to new contributor @udoprog for contributing to this release!
0.1.19 (February 3, 2022)
This release introduces a new #[instrument(ret)]
argument to emit an event
with the return value of an instrumented function.
Added
#[instrument(ret)]
to record the return value of a function (#1716)- added
err(Debug)
argument to cause#[instrument(err)]
to record errors withDebug
rather than `Display (#1631)
Fixed
- incorrect code generation for functions returning async blocks (#1866)
- incorrect diagnostics when using
rust-analyzer
(#1634)
Thanks to @Swatinem, @hkmatsumoto, @cynecx, and @ciuncan for contributing to this release!
0.1.18 (October 5, 2021)
This release fixes issues introduced in v0.1.17.
Fixed
- fixed mismatched types compiler error that may occur when using
#[instrument]
on anasync fn
that returns animpl Trait
value that includes a closure (#1616) - fixed false positives for
clippy::suspicious_else_formatting
warnings due to rust-lang/rust-clippy#7760 and rust-lang/rust-clippy#6249 (#1617) - fixed
clippy::let_unit_value
lints when using#[instrument]
(#1614)
0.1.17 (YANKED) (October 1, 2021)
This release significantly improves performance when #[instrument]
-generated
spans are below the maximum enabled level.
Added
Thanks to @oli-obk for contributing to this release!
0.1.16 (September 13, 2021)
This release adds a new #[instrument(skip_all)]
option to skip recording all
arguments to an instrumented function as fields. Additionally, it adds support
for recording arguments that are tracing
primitive types as typed values,
rather than as fmt::Debug
.
Added
- add
skip_all
option to#[instrument]
(#1548) - record primitive types as primitive values rather than as
fmt::Debug
(#1378) - added support for
f64
s as typed values (#1522)
Thanks to @Folyd and @jsgf for contributing to this release!
0.1.15 (March 12, 2021)
Fixed
#[instrument]
on functions returningBox::pin
ned futures incorrectly skipping function bodies prior to returning a future (#1297)
Thanks to @nightmared for contributing to this release!
0.1.14 (March 10, 2021)
Fixed
- Compatibility between
#[instrument]
andasync-trait
v0.1.43 and newer (#1228)
Thanks to @nightmared for lots of hard work on this fix!
0.1.13 (February 17, 2021)
Fixed
- Compiler error when using
#[instrument(err)]
on functions which returnimpl Trait
(#1236)
0.1.12 (February 4, 2021)
Fixed
- Compiler error when using
#[instrument(err)]
on functions with mutable parameters (#1167) - Missing function visibility modifier when using
#[instrument]
withasync-trait
(#977) - Multiple documentation fixes and improvements (#965, #981, #1215)
Changed
tracing-futures
dependency is no longer required when using#[instrument]
on async functions (#808)
Thanks to @nagisa, @Txuritan, @TaKO8Ki, and @okready for contributing to this release!
0.1.11 (August 18, 2020)
Fixed
- Corrected wrong minimum supported Rust version note in docs (#941)
- Removed unused
syn
features (#928)
Thanks to new contributor @jhpratt for contributing to this release!
0.1.10 (August 10, 2020)
Added
- Support for using
self
in field expressions when instrumentingasync-trait
functions (#875) - Several documentation improvements (#832, #897, #911, #913)
Thanks to @anton-dutov and @nightmared for contributing to this release!
0.1.9 (July 8, 2020)
Added
- Support for arbitrary expressions as fields in
#[instrument]
(#672)
Changed
#[instrument]
now emits a compiler warning when ignoring unrecognized input (#672, #786)
0.1.8 (May 13, 2020)
Added
- Support for using
#[instrument]
on methods that are part ofasync-trait
trait implementations (#711) - Optional
#[instrument(err)]
argument to automatically emit an event if an instrumented function returnsErr
(#637)
Thanks to @ilana and @nightmared for contributing to this release!
0.1.7 (February 26, 2020)
Added
- Support for adding arbitrary literal fields to spans generated by
#[instrument]
(#569) #[instrument]
now emits a helpful compiler error when attempting to skip a function parameter (#600)
Thanks to @Kobzol for contributing to this release!
0.1.6 (December 20, 2019)
Added
- Updated documentation (#468)
0.1.5 (October 22, 2019)
Added
- Support for destructuring in arguments to
#[instrument]
ed functions (#397) - Generated field for
self
parameters when#[instrument]
ing methods (#397)
0.1.4 (September 26, 2019)
Added
- Optional
skip
argument to#[instrument]
for excluding function parameters from generated spans (#359)
0.1.3 (September 12, 2019)
Fixed
- Fixed
#[instrument]
ed async functions not compiling onnightly-2019-09-11
or newer (#342)
0.1.2 (August 19, 2019)
Changed
- Updated
syn
andquote
dependencies to 1.0 (#292) - Removed direct dependency on
proc-macro2
to avoid potential version conflicts (#296)
Fixed
- Outdated idioms in examples (#271, #273)
0.1.1 (August 9, 2019)
Changed
- Using the
#[instrument]
attribute onasync fn
s no longer requires a feature flag (#258)
Fixed
- The
#[instrument]
macro now works on generic functions (#262)
0.1.0 (August 8, 2019)
- Initial release