Rust:
Kirjoittaminen standardivirheeseen
Kuinka:
Rust tarjoaa suoraviivaisen tavan kirjoittaa stderr:iin käyttämällä eprintln!-makroa, samankaltaisesti kuin println! käytetään stdoutille. Tässä on perusesimerkki:
fn main() {
eprintln!("Tämä on virheilmoitus!");
}Esimerkkituloste (standardivirheeseen):
Tämä on virheilmoitus!Jos haluat enemmän kontrollia virheilmoitusten yli, kuten tekstiä muotoillessasi tai I/O-tuloksia käsitellessäsi, käytä stderr funktiota std::io moduulista. Tämä menetelmä tarjoaa kahvan globaaliin stderr-virtaan, johon voit sitten kirjoittaa käyttäen esimerkiksi write_all tai writeln metodeja Write piirteestä:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut kahva = stderr.lock();
writeln!(kahva, "Muotoiltu virheilmoitus: {}", 404).expect("Kirjoittaminen stderr:iin epäonnistui");
}Esimerkkituloste (standardivirheeseen):
Muotoiltu virheilmoitus: 404Jos työskentelet ympäristöissä tai sovelluksissa, joissa tukeudut kirjastoihin lokitukseen tai virheenkäsittelyyn, log ja env_logger kirjastot ovat suosittuja. Vaikka niitä käytetään enemmän lokitustarkoituksiin, ne ovat mukautettavissa ja voivat ohjata virhelokitustasot stderr:iin. Alla on yksinkertainen käyttöesimerkki log ja env_logger kanssa:
Lisää ensin riippuvuudet Cargo.toml-tiedostoosi:
[dependencies]
log = "0.4"
env_logger = "0.9"Sitten, aseta ja käytä loki sovelluksessasi:
fn main() {
env_logger::init();
log::error!("Tämä on virheilmoitus, joka on kirjattu stderr:iin");
}Tämän ohjelman suorittaminen (asetettuasi env_logger asianmukaisella ympäristömuuttujalla, esimerkiksi RUST_LOG=error) tulostaa virheilmoituksen stderr:iin, hyödyntäen lokitusinfrastruktuuria.
ERROR: Tämä on virheilmoitus, joka on kirjattu stderr:iin