Clojure:
Skriving til standardfeil
Hvordan:
I Clojure kan du skrive til stderr ved å bruke *err*
-strømmen. Her er et grunnleggende eksempel:
(.write *err* "Dette er en feilmelding.\n")
Merk at etter å ha skrevet en melding, bør du tømme strømmen for å sikre at meldingen blir umiddelbart utgitt:
(flush)
Eksempelutskrift til stderr:
Dette er en feilmelding.
Hvis du håndterer unntak, kan du ønske å skrive ut stackspor til stderr. Bruk printStackTrace
for dette:
(try
;; Kode som kan kaste et unntak
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))
For mer strukturert feillogging, kan tredjepartsbiblioteker som timbre
konfigureres for å logge til stderr. Her er en grunnleggende oppsett og bruk:
Først, legg til timbre
i dine avhengigheter. Deretter konfigurerer du det til å bruke stderr:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Deaktiver stdout-logging
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Deaktiver fillogg
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Aktiver stderr for feil
(timbre/error "En feil oppsto under behandlingen av forespørselen din.")
Dette vil dirigere meldinger på feilnivå til stderr, og gjøre dem ulik standard programutgang.