/tracing

Application level tracing for Rust.

Primary LanguageRustMIT LicenseMIT

tracing

Application-level tracing for Rust.

Crates.io Documentation MIT licensed Build Status Gitter chat

Website | Chat

Overview

tracing is a framework for instrumenting Rust programs to collect structured, event-based diagnostic information. tracing is maintained by the Tokio project, but does not require the tokio runtime to be used.

Getting Help

First, see if the answer to your question can be found in the API documentation. If the answer is not there, there is an active community in the Tracing Gitter channel. We would be happy to try to answer your question. Last, if that doesn't work, try opening an issue with the question.

Contributing

🎈 Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Tracing project.

Project layout

The tracing crate contains the primary instrumentation API, used for instrumenting libraries and applications to emit trace data. The tracing-core crate contains the core API primitives on which the rest of tracing is instrumented. Authors of trace subscribers may depend on tracing-core, which guarantees a higher level of stability.

Additionally, this repository contains several compatibility and utility libraries built on top of tracing. Some of these crates are in a pre-release state, and are less stable than the tracing and tracing-core crates.

The crates included as part of Tracing are:

  • tracing-fmt: A subscriber for formatting and logging trace events.

  • tracing-futures: Utilities for instrumenting futures (unstable).

  • tracing-macros: Experimental macros for emitting trace events (unstable).

  • tracing-proc-macros: Procedural macro attributes for automatically instrumenting functions (unstable).

  • tracing-log: Compatibility with the log crate (unstable).

  • tracing-env-logger: A subscriber that logs trace events using the env_logger crate (unstable).

  • tracing-serde: A compatibility layer for serializing trace data with serde (unstable).

  • tracing-subscriber: Utilities for subscriber implementations (unstable).

  • tracing-tower: Compatibility with the tower ecosystem (unstable).

  • tracing-tower-http: tower compatibility for HTTP services (unstable).

License

This project is licensed under the MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tracing by you, shall be licensed as MIT, without any additional terms or conditions.