Expand description
Trace verbosity level filtering.
§Compile time filters
Trace verbosity levels can be statically disabled at compile time via Cargo
features, similar to the log crate. Trace instrumentation at disabled
levels will be skipped and will not even be present in the resulting binary
unless the verbosity level is specified dynamically. This level is
configured separately for release and debug builds. The features are:
max_level_offmax_level_errormax_level_warnmax_level_infomax_level_debugmax_level_tracerelease_max_level_offrelease_max_level_errorrelease_max_level_warnrelease_max_level_inforelease_max_level_debugrelease_max_level_trace
These features control the value of the STATIC_MAX_LEVEL constant. The
instrumentation macros macros check this value before recording an event or
constructing a span. By default, no levels are disabled.
For example, a crate can disable trace level instrumentation in debug builds and trace, debug, and info level instrumentation in release builds with the following configuration:
[dependencies]
tracing = { version = "0.1", features = ["max_level_debug", "release_max_level_warn"] }§Notes
Please note that tracing’s static max level features do not control the
log records that may be emitted when tracing’s “log” feature flag is
enabled. This is to allow tracing to be disabled entirely at compile time
while still emitting log records — such as when a library using
tracing is used by an application using log that doesn’t want to
generate any tracing-related code, but does want to collect log records.
This means that if the “log” feature is in use, some code may be generated
for log records emitted by disabled tracing events. If this is not
desirable, log records may be disabled separately using log’s static
max level features.
Structs§
- Level
Filter - A filter comparable to a verbosity
Level. - Parse
Level Filter Error - Indicates that a string could not be parsed to a valid level.
Constants§
- STATIC_
MAX_ LEVEL - The statically configured maximum trace level.