Clojure:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีการ:
ใน Clojure, คุณสามารถเขียนไปยัง stderr โดยใช้สตรีม *err*
นี่คือตัวอย่างพื้นฐาน:
(.write *err* "นี่คือข้อความแสดงข้อผิดพลาด.\n")
โปรดทราบว่าหลังจากเขียนข้อความแล้ว คุณควรล้างสตรีมเพื่อให้แน่ใจว่าข้อความถูกแสดงผลทันที:
(flush)
ตัวอย่างผลลัพธ์สู่ stderr:
นี่คือข้อความแสดงข้อผิดพลาด.
หากคุณกำลังจัดการกับข้อยกเว้น คุณอาจต้องการพิมพ์แทร็คการติดตามข้อผิดพลาดไปยัง stderr ใช้ printStackTrace
สำหรับสิ่งนี้:
(try
;; โค้ดที่อาจโยนข้อยกเว้น
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))
สำหรับการบันทึกข้อผิดพลาดที่มีโครงสร้างมากขึ้น ไลบรารีภายนอกอย่าง timbre
สามารถตั้งค่าให้บันทึกไปยัง stderr ได้ นี่คือการตั้งค่าพื้นฐานและการใช้งาน:
ก่อนอื่น, เพิ่ม timbre
ไปยังขึ้นต่อของคุณ จากนั้นตั้งค่าให้ใช้ stderr:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; ปิดการบันทึกผ่าน stdout
(timbre/set-config! [:appenders :spit :enabled?] false) ;; ปิดการบันทึกผ่านไฟล์
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; เปิดการใช้งาน stderr สำหรับข้อผิดพลาด
(timbre/error "เกิดข้อผิดพลาดขณะประมวลผลคำขอของคุณ.")
สิ่งนี้จะนำข้อความที่มีระดับความผิดพลาดไปยัง stderr ทำให้สามารถแยกแยะจากผลลัพธ์ของแอปพลิเคชันมาตรฐานได้.