Rust:
Skriving til standardfeil
Hvordan gjøre det:
Rust gir en enkel måte å skrive til stderr på ved bruk av eprintln!
-makroen, likt som hvordan println!
brukes for stdout. Her er et grunnleggende eksempel:
fn main() {
eprintln!("Dette er en feilmelding!");
}
Eksempelutdata (til standard feil):
Dette er en feilmelding!
For mer kontroll over feilmeldingene, som når du vil formatere tekst eller håndtere I/O-resultater, bruk stderr
-funksjonen fra std::io
-modulen. Denne metoden gir et håndtak til den globale stderr-strømmen, som du deretter kan skrive til ved å bruke metoder som write_all
eller writeln
fra Write
-trekket:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut håndtak = stderr.lock();
writeln!(håndtak, "Formatert feilmelding: {}", 404).expect("Klarte ikke å skrive til stderr");
}
Eksempelutdata (til standard feil):
Formatert feilmelding: 404
Hvis du jobber i miljøer eller applikasjoner der du er avhengig av biblioteker for logging eller feilhåndtering, er biblioteker som log
og env_logger
populære. Selv om de brukes mer for loggingsformål, er de konfigurerbare og kan dirigere feilloggnivåer til stderr. Nedenfor er et enkelt brukseksempel med log
og env_logger
:
Først, legg til avhengighetene i din Cargo.toml
:
[dependencies]
log = "0.4"
env_logger = "0.9"
Deretter, sett opp og bruk loggingen i applikasjonen din:
fn main() {
env_logger::init();
log::error!("Dette er en feilmelding logget til stderr");
}
Å kjøre dette programmet (etter å ha satt opp env_logger
med en passende miljøvariabel, for eksempel RUST_LOG=error
) vil skrive ut feilmeldingen til stderr, ved å bruke loggingsinfrastrukturen.
FEIL: Dette er en feilmelding logget til stderr