Rust:
Escribiendo en el error estándar
Cómo hacerlo:
Rust proporciona una manera sencilla de escribir en stderr utilizando la macro eprintln!
, similar a cómo println!
se usa para stdout. Aquí hay un ejemplo básico:
fn main() {
eprintln!("¡Este es un mensaje de error!");
}
Salida de muestra (a error estándar):
¡Este es un mensaje de error!
Para tener más control sobre los mensajes de error, como cuando quieres formatear texto o manejar resultados de E/S, usa la función stderr
del módulo std::io
. Este método proporciona un manejador al flujo global de stderr, al cual puedes escribir usando métodos como write_all
o writeln
del trait Write
:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut handle = stderr.lock();
writeln!(handle, "Mensaje de error formateado: {}", 404).expect("Fallo al escribir en stderr");
}
Salida de muestra (a error estándar):
Mensaje de error formateado: 404
Si estás trabajando en entornos o aplicaciones donde dependes de bibliotecas para el registro o manejo de errores, bibliotecas como log
y env_logger
son populares. Aunque se utilizan más para propósitos de registro, son configurables y pueden dirigir niveles de error de registro a stderr. A continuación, se muestra un ejemplo de uso simple utilizando log
y env_logger
:
Primero, agrega las dependencias a tu Cargo.toml
:
[dependencies]
log = "0.4"
env_logger = "0.9"
Luego, configura y utiliza el registro en tu aplicación:
fn main() {
env_logger::init();
log::error!("Este es un mensaje de error registrado en stderr");
}
Ejecutar este programa (después de configurar env_logger
con una variable de entorno apropiada, por ejemplo, RUST_LOG=error
) producirá el mensaje de error en stderr, utilizando la infraestructura de registro.
ERROR: Este es un mensaje de error registrado en stderr