Crate sp_tracing

Source
Expand description

Substrate tracing primitives and macros.

To trace functions or individual code in Substrate, this crate provides within_span and enter_span. See the individual docs for how to use these macros.

Note that to allow traces from wasm execution environment there are 2 reserved identifiers for tracing Field recording, stored in the consts: WASM_TARGET_KEY and WASM_NAME_KEY - if you choose to record fields, you must ensure that your identifiers do not clash with either of these.

Additionally, we have a const: WASM_TRACE_IDENTIFIER, which holds a span name used to signal that the ‘actual’ span name and target should be retrieved instead from the associated Fields mentioned above.

Note: The tracing crate requires trace metadata to be static. This does not work for wasm code in substrate, as it is regularly updated with new code from on-chain events. The workaround for this is for the wasm tracing wrappers to put the name and target data in the values map (normally they would be in the static metadata assembled at compile time).

Re-exports§

pub use tracing;
pub use tracing_subscriber;

Modules§

event
Events represent single points in time during the execution of a program.
span
Spans represent periods of time in which a program was executing in a particular context.

Macros§

debug
Constructs an event at the debug level.
debug_span
Constructs a span at the debug level.
enter_span
Enter a span.
error
Constructs an event at the error level.
error_span
Constructs a span at the error level.
event
Constructs a new Event.
info
Constructs an event at the info level.
info_span
Constructs a span at the info level.
span
Constructs a new span.
trace
Constructs an event at the trace level.
trace_span
Constructs a span at the trace level.
warn
Constructs an event at the warn level.
warn_span
Constructs a span at the warn level.
within_span
Runs given code within a tracing span, measuring it’s execution time.

Structs§

Level
Describes the level of verbosity of a span or event.
Span
A handle representing a span, with the capability to enter the span if it exists.
WasmEntryAttributes
Span or Event Attributes
WasmFieldName
The name of a field provided as the argument name when constructing an event! or span!. Generally generated automatically via stringify from an 'static &str. Likely print-able.
WasmFields
A list of WasmFieldNames in the order provided
WasmMetadata
Metadata provides generic information about the specific location of the span! or event! call on the wasm-side.
WasmValuesSet
A list of WasmFieldNames with the given WasmValue (if provided) in the order specified.

Enums§

WasmLevel
The Tracing Level – the user can filter by this
WasmValue
A parameter value provided to the span/event

Statics§

WASM_NAME_KEY
The fieldname for the wasm-originated name
WASM_TARGET_KEY
The fieldname for the wasm-originated target
WASM_TRACE_IDENTIFIER
The identifier we are using to inject the wasm events in the generic tracing system

Functions§

init_for_tests
Init a tracing subscriber for logging in tests.
try_init_simple
Try to init a simple tracing subscriber with log compatibility layer.