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

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

איך לעשות:

בClojure, ניתן לכתוב ל stderr באמצעות הזרם *err*. הנה דוגמה בסיסית:

(.write *err* "This is an error message.\n")

שימו לב שלאחר כתיבת הודעה, עליכם לרוקן את הזרם כדי להבטיח שההודעה תוצא מיד:

(flush)

דוגמת פלט ל stderr:

This is an error message.

אם אתם מתמודדים עם חריגות, יכול להיות שתרצו להדפיס מעקבי ערימה ל 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 "An error occurred while processing your request.")

זה יוביל הודעות ברמת שגיאה ל stderr, ויהפוך אותן לברורות מפלט היישום הסטנדרטי.