tracing.rs

Overview

This file provides functionality to initialize and configure the tracing subsystem used for application-level logging and diagnostics. It leverages the tracing_subscriber crate to set up a global subscriber that formats and filters tracing events. The primary purpose is to enable structured, context-aware logging with customizable output formatting and filtering based on environment variables.

Functions

init_tracing()

pub fn init_tracing()

Initializes the global tracing subscriber with customized layers and filters.

Description

Parameters

Return Value

Usage Example

fn main() {
    tracing::info!("Before initializing tracing");
    tracing_rs::init_tracing();
    tracing::info!("Tracing initialized");
}

After calling init_tracing(), subsequent tracing macros (info!, debug!, error!, etc.) will output logs according to the configured formatting and filtering rules.

Implementation Details

Interaction with Other Parts of the System

Diagram: Function Relationship Flowchart

flowchart TD
A["init_tracing()"] --> B["tracing_subscriber::registry()"]
B --> C["fmt::layer() with configurations"]
C --> D[compact format]
C --> E[thread names & IDs]
C --> F[line numbers]
C --> G[disable ANSI]
C --> H[write to stderr]
B --> I["EnvFilter (from env vars)"]
B & C & I --> J[".init() - initialize global subscriber"]

This flowchart illustrates the composition of the tracing subscriber layers within the init_tracing function. The registry is configured with a formatting layer and an environment filter, then initialized globally.