Clojure:
Skriva till standardfel
Hur man gör:
I Clojure kan du skriva till stderr med hjälp av *err*
-strömmen. Här är ett grundläggande exempel:
(.write *err* "Det här är ett felmeddelande.\n")
Observera att efter att du har skrivit ett meddelande, bör du tömma strömmen för att säkerställa att meddelandet omedelbart blir utskrivet:
(flush)
Exempelutdata till stderr:
Det här är ett felmeddelande.
Om du hanterar undantag, kanske du vill skriva ut stackspårningar till stderr. Använd printStackTrace
för detta:
(try
;; Kod som kanske kastar ett undantag
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))
För mer strukturerad felloggning kan tredjepartsbibliotek som timbre
konfigureras för att logga till stderr. Här är en grundläggande inställning och användning:
Först, lägg till timbre
i dina beroenden. Konfigurera sedan den för att använda stderr:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Inaktivera stdout-loggning
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Inaktivera filloggning
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Aktivera stderr för fel
(timbre/error "Ett fel inträffade vid behandling av din förfrågan.")
Detta kommer att dirigera meddelanden på felnivå till stderr, och göra dem distinkta från den standardmässiga applikationsutdatan.