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

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. אלו מספקות מנגנוני תיעוד ניתנים להגדרה, כולל רמות חומרה, עיצוב והיכולת לכתוב לפלטים שונים, כולל קבצים, דוא"ל ועוד.