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 पर निर्देशित होंगे, जिससे वे मानक अनुप्रयोग आउटपुट से अलग हो जाएंगे।