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.