כתיבה לשגיאה התקנית

Rust:
כתיבה לשגיאה התקנית

איך לעשות:

Rust מספקת דרך ישירה לכתוב ל-stderr באמצעות המקרו eprintln!, בדומה לאופן שבו println! משמש ל-stdout. הנה דוגמה בסיסית:

fn main() {
    eprintln!("זוהי הודעת שגיאה!");
}

פלט לדוגמה (לשגיאה סטנדרטית):

זוהי הודעת שגיאה!

ליותר שליטה על הודעות השגיאה, כמו כאשר אתה רוצה לעצב טקסט או לטפל בתוצאות קלט/פלט, ניתן להשתמש בפונקציה stderr מהמודול std::io. שיטה זו מספקת ידית לזרם ה-globel stderr, שניתן לכתוב אליו באמצעות שיטות כמו write_all או writeln מה- trait Write:

use std::io::{self, Write};

fn main() {
    let stderr = io::stderr();
    let mut handle = stderr.lock();
    
    writeln!(handle, "הודעת שגיאה מעוצבת: {}", 404).expect("נכשל בכתיבה ל-stderr");
}

פלט לדוגמה (לשגיאה סטנדרטית):

הודעת שגיאה מעוצבת: 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!("זוהי הודעת שגיאה שנרשמה ל-stderr");
}

הרצת תוכנית זו (לאחר הגדרת env_logger עם משתנה סביבה מתאים, לדוגמה, RUST_LOG=error) תוציא את הודעת השגיאה ל-stderr, בעזרת התשתית של תיעוד השגיאות.

ERROR: זוהי הודעת שגיאה שנרשמה ל-stderr