Clojure:
Kirjoittaminen standardivirheeseen
Kuinka:
Clojuressa voit kirjoittaa stderr-virtaan käyttämällä *err*
-virtaa. Tässä on perusesimerkki:
(.write *err* "Tämä on virheviesti.\n")
Huomaa, että viestin kirjoittamisen jälkeen sinun tulisi tyhjentää virta varmistaaksesi, että viesti tulostuu välittömästi:
(flush)
Esimerkkituloste stderriin:
Tämä on virheviesti.
Jos käsittelet poikkeuksia, saatat haluta tulostaa pinorakenteet stderriin. Käytä tähän printStackTrace
:
(try
;; Koodi, joka saattaa heittää poikkeuksen
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))
Rakenteellisempaa virhelokitusta varten kolmannen osapuolen kirjastoja, kuten timbre
, voidaan konfiguroida lokittamaan stderriin. Tässä on perusasetus ja käyttö:
Ensinnäkin, lisää timbre
riippuvuuksiisi. Sitten konfiguroi se käyttämään stderriä:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Poista käytöstä stdout-lokitus
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Poista käytöstä tiedostolokitus
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Ota käyttöön stderr virheille
(timbre/error "Virhe tapahtui käsitellessäsi pyyntöäsi.")
Tämä ohjaa virhetason viestit stderriin, tehden niistä erotettavissa olevia tavanomaisesta sovellustulosteesta.