Rust:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีการ:
Rust ให้วิธีการที่ตรงไปตรงมาในการเขียนไปยัง stderr โดยใช้ macro eprintln! คล้ายกับวิธีใช้ println! สำหรับ stdout นี่คือตัวอย่างพื้นฐาน:
fn main() {
eprintln!("This is an error message!");
}ตัวอย่างผลลัพธ์ (ไปยัง standard error):
This is an error message!สำหรับการควบคุมข้อความผิดพลาดได้มากขึ้น เช่นเมื่อคุณต้องการจัดรูปแบบข้อความหรือจัดการกับผลลัพธ์ของ I/O ให้ใช้ฟังก์ชัน stderr จากโมดูล std::io วิธีนี้จะให้ตัวจัดการไปยังกระแส stderr ทั่วโลก ซึ่งคุณสามารถเขียนไปยังมันได้โดยใช้เมท็อด เช่น write_all หรือ writeln จาก trait Write:
use std::io::{self, Write};
fn main() {
let stderr = io::stderr();
let mut handle = stderr.lock();
writeln!(handle, "Formatted error message: {}", 404).expect("Failed to write to stderr");
}ตัวอย่างผลลัพธ์ (ไปยัง standard error):
Formatted error message: 404หากคุณกำลังทำงานในสภาวะแวดล้อมหรือแอปพลิเคชั่นที่คุณพึ่งพาไลบรารีสำหรับการบันทึกข้อมูลหรือการจัดการข้อผิดพลาด ไลบรารีเช่น log และ env_logger มีความนิยม ถึงแม้ว่าจะถูกใช้เพื่อวัตถุประสงค์การบันทึกข้อมูลมากกว่า แต่สามารถกำหนดค่าได้และสามารถนำระดับข้อผิดพลาดของการบันทึกไปยัง stderr นี่คือตัวอย่างการใช้งานง่ายๆ โดยใช้ log และ env_logger:
ก่อนอื่น เพิ่มการพึ่งพาใน Cargo.toml ของคุณ:
[dependencies]
log = "0.4"
env_logger = "0.9"จากนั้น ตั้งค่าและใช้การบันทึกข้อมูลในแอปพลิเคชั่นของคุณ:
fn main() {
env_logger::init();
log::error!("This is an error message logged to stderr");
}การเรียกใช้โปรแกรมนี้ (หลังจากตั้งค่า env_logger ด้วยตัวแปรสภาพแวดล้อมที่เหมาะสม เช่น RUST_LOG=error) จะส่งผลให้ข้อความผิดพลาดแสดงใน stderr โดยใช้โครงสร้างพื้นฐานการบันทึกข้อมูล
ERROR: This is an error message logged to stderr