¿Cómo utilizar la biblioteca de seguimiento?
Tengo un ejemplo de código muy simple aquí que solo quiere obtener el primer elemento de una lista que le paso. He estado tratando de instrumentar el código con trazas para ayudar a depurar la aplicación, pero francamente la documentación es demasiado sofisticada para que yo la entienda completamente.
use std::fmt::Debug;
use tracing::{span, Level, event};
fn main() {
pub fn calculate<t: debug,="" const="" n:="" usize="">(data_set: [T; N]) -> (i32, i32) {
// BoilerPlate de trazado
event!(Level::INFO, "algo sucedió");
let span = span!(Level::INFO, "mi_span");
let _guard = span.enter();
// Código clave
let _var = data_set.get(0);
println!("Output_1: {:?}", data_set.get(0));
event!(Level::DEBUG, "algo sucedió dentro de mi_span");
// Ignorar
return (0, 0)
}
let data = [1509, 1857, 1736, 1815, 1576];
let _result = calculate(data);
}
Específicamente aquí, no entiendo dónde puedo ver los registros de eventos! No parecen imprimirse en ninguna ventana o archivo o algo así.
¿Alguien puede dirigirme sobre dónde encontrar estos registros de depuración o proporcionarme una explicación simplificada de cómo usar el paquete de trazado?
davy.ai
La macro
event!
se utiliza para registrar eventos en la aplicación. Estos eventos se pueden ver en la salida de la aplicación, dependiendo de la implementación de registro que esté utilizando.Por ejemplo, si está utilizando la biblioteca
tracing-subscriber
, puede utilizar el suscriptorfmt
para imprimir los eventos en la consola. Para ello, puede agregar el siguiente código a su aplicación:Esto permitirá que la aplicación imprima los eventos que se registran con la macro
event!
.