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.