### Fixed
- Fixed a bug where `LevelFilter::OFF` (and thus also the
`static_max_level_off` feature flag) would enable *all* traces,
rather than *none* (#853)
- **log**: Fixed `tracing` macros and `Span`s not checking
`log::max_level` before emitting `log` records (#870)
### Changed
- **macros**: Macros now check the global max level
(`LevelFilter::current`) before the per-callsite cache when
determining if a span or event is enabled. This significantly improves
performance in some use cases (#853)
- **macros**: Simplified the code generated by macro expansion
significantly, which may improve compile times and/or `rustc`
optimizatation of surrounding code (#869, #869)
- **macros**: Macros now check the static max level before checking any
runtime filtering, improving performance when a span or event is
disabled by a `static_max_level_XXX` feature flag (#868)
- `LevelFilter` is now a re-export of the `tracing_core::LevelFilter`
type, it can now be used interchangably with the versions in
`tracing-core` and `tracing-subscriber` (#853)
- Significant performance improvements when comparing `LevelFilter`s and
`Level`s (#853)
- Updated the minimum `tracing-core` dependency to 0.1.12 (#853)
### Added
- **macros**: Quoted string literals may now be used as field names, to
allow fields whose names are not valid Rust identifiers (#790)
- **docs**: Several documentation improvements (#850, #857, #841)
- `LevelFilter::current()` function, which returns the highest level
that any subscriber will enable (#853)
- `Subscriber::max_level_hint` optional trait method, for setting the
value returned by `LevelFilter::current()` (#853)
Thanks to new contributors @cuviper, @ethanboxx, @ben0x539, @dignati,
@colelawrence, and @rbtcollins for helping out with this release!
Signed-off-by: Eliza Weisman <eliza@buoyant.io>