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, ויהפוך אותן לברורות מפלט היישום הסטנדרטי.