การเขียนไปยังข้อผิดพลาดมาตรฐาน

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 ทำให้สามารถแยกแยะจากผลลัพธ์ของแอปพลิเคชันมาตรฐานได้.