Clojure:
मानक त्रुटि के लिए लिखना
कैसे:
Clojure में, आप *err*
स्ट्रीम का उपयोग करके stderr में लिख सकते हैं। यहाँ एक मूल उदाहरण है:
(.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 पर निर्देशित होंगे, जिससे वे मानक अनुप्रयोग आउटपुट से अलग हो जाएंगे।