Schrijven naar standaardfout

Clojure:
Schrijven naar standaardfout

Hoe:

Om naar de standaardfout in Clojure te schrijven, gebruik je binding met *err*. Hier is een snel voorbeeld:

(binding [*err* *out*]
  (println "Dit gaat naar de standaardfout"))

Voorbeeld van output (in je shell):

$ clj your_script.clj 2> error.log
$ cat error.log
Dit gaat naar de standaardfout

Dit fragment bindt *err* aan *out*, wat de standaarduitvoer is, zodat je kunt zien wat typisch naar stderr zou gaan.

Diepere Duik

Historisch gezien hadden Unix-systemen twee afzonderlijke uitvoerstromen, stdout en stderr, voor verschillende datatypes. In Clojure verwijst *out* naar stdout en *err* naar stderr. Alternatieven voor binding omvatten het direct gebruiken van Java interop (bv. (.println System/err "bericht")). Wat betreft implementatie, *err* is een dynamische var, wat toelaat voor thread-lokale bindingen — een nuance die kan beïnvloeden hoe fouten worden gelogd in gelijktijdige applicaties.

Zie Ook

Voor een breder begrip van standaardstromen kunnen de volgende bronnen ook nuttig zijn: