Ruby:
כתיבה לשגיאה התקנית
כיצד לעשות זאת:
ספריית הסטנדרט של רובי מספקת דרך ישירה לכתיבה ל-stderr באמצעות $stderr
או STDERR
. אין צורך בספריות צד שלישי לפעולה בסיסית זו.
כתיבת הודעה פשוטה ל-stderr:
$stderr.puts "שגיאה: קובץ לא נמצא."
# או באופן שקול
STDERR.puts "שגיאה: קובץ לא נמצא."
פלט לדוגמא (ל-stderr):
שגיאה: קובץ לא נמצא.
הפניית stderr לקובץ:
File.open('error.log', 'w') do |file|
STDERR.reopen(file)
STDERR.puts "נכשל בפתיחת הגדרה."
end
קטע קוד זה מפנה את stderr לקובץ בשם error.log
, וכל שגיאות הכתובות שתיעשינה בהמשך יירשמו לשם עד שהתכנית תאפס את ההפניית stderr או תסתיים.
שימוש ב-stderr עם טיפול ביוצאות מן הכלל:
begin
# סימולציה של פעולה שעלולה לכשל, למשל, פתיחת קובץ
File.open('nonexistent_file.txt')
rescue Exception => e
STDERR.puts "אירעה חריגה: #{e.message}"
end
פלט לדוגמא (ל-stderr):
אירעה חריגה: לא נמצא קובץ או תיקייה @ rb_sysopen - nonexistent_file.txt
למרות ששיטות המובנות של רובי לכתיבה ל-stderr מספיקות לרוב היישומים, לצרכים מורכבים יותר של תיעוד שגיאות, עשוי להיות שתרצו לשקול את ספריית ה-logger
הסטנדרטית או גמים חיצוניים כמו Log4r
. אלו מספקות מנגנוני תיעוד ניתנים להגדרה, כולל רמות חומרה, עיצוב והיכולת לכתוב לפלטים שונים, כולל קבצים, דוא"ל ועוד.