Ruby:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีการ:
ไลบรารีมาตรฐานของ Ruby มีวิธีง่ายๆ ในการเขียนไปยัง stderr โดยใช้ $stderr
หรือ STDERR
คุณไม่จำเป็นต้องใช้ไลบรารีภายนอกสำหรับการทำงานพื้นฐานนี้
เขียนข้อความง่ายๆ ไปที่ stderr:
$stderr.puts "Error: File not found."
# หรือทำได้เหมือนกัน
STDERR.puts "Error: File not found."
ตัวอย่างผลลัพธ์ (ไปที่ stderr):
Error: File not found.
การเปลี่ยนเส้นทาง stderr ไปยังไฟล์:
File.open('error.log', 'w') do |file|
STDERR.reopen(file)
STDERR.puts "Failed to open configuration."
end
ตัวอย่างโค้ดนี้เปลี่ยนเส้นทาง stderr ไปยังไฟล์ที่ชื่อว่า error.log
, และข้อผิดพลาดที่เขียนต่อๆ ไปจะถูกส่งออกไปที่นั่นจนกว่าโปรแกรมจะตั้งค่าเปลี่ยนเส้นทาง stderr ใหม่หรือสิ้นสุดการทำงาน
การใช้ stderr กับการจัดการข้อยกเว้น:
begin
# จำลองการทำงานที่อาจล้มเหลว เช่น การเปิดไฟล์
File.open('nonexistent_file.txt')
rescue Exception => e
STDERR.puts "Exception occurred: #{e.message}"
end
ตัวอย่างผลลัพธ์ (ไปที่ stderr):
Exception occurred: No such file or directory @ rb_sysopen - nonexistent_file.txt
ในขณะที่วิธีการในตัวของ Ruby สำหรับการเขียนไปยัง stderr เพียงพอสำหรับแอปพลิเคชั่นหลายๆ แอปพลิเคชั่นแล้ว, สำหรับความต้องการการบันทึกข้อมูลที่ซับซ้อนมากขึ้น คุณอาจพิจารณาใช้ไลบรารีมาตรฐาน logger
หรือ gems ภายนอกเช่น Log4r
เหล่านี้ให้กลไกการบันทึกข้อมูลที่สามารถกำหนดค่าได้ รวมถึงระดับความรุนแรง, การจัดรูปแบบ, และความสามารถในการเขียนไปยังเอาต์พุตต่างๆ รวมถึงไฟล์, อีเมล, และอื่นๆ