Clojure:
Schreiben auf Standardfehler
Wie geht das:
In Clojure können Sie mit dem *err*
Stream auf stderr schreiben. Hier ist ein einfaches Beispiel:
(.write *err* "Dies ist eine Fehlermeldung.\n")
Beachten Sie, dass Sie nach dem Verfassen einer Nachricht den Stream flushen sollten, um sicherzustellen, dass die Nachricht sofort ausgegeben wird:
(flush)
Beispiel für eine Ausgabe auf stderr:
Dies ist eine Fehlermeldung.
Wenn Sie mit Ausnahmen umgehen, möchten Sie vielleicht Stacktraces auf stderr ausgeben. Verwenden Sie dafür printStackTrace
:
(try
;; Code, der eine Ausnahme auslösen könnte
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))
Für ein strukturierteres Fehlerprotokollieren können Drittanbieter-Bibliotheken wie timbre
konfiguriert werden, um auf stderr zu protokollieren. Hier ist eine grundlegende Einrichtung und Verwendung:
Zuerst fügen Sie timbre
Ihren Abhängigkeiten hinzu. Dann konfigurieren Sie es für die Nutzung von stderr:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Deaktivieren des stdout-Protokollierens
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Deaktivieren des Dateiprotokollierens
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Aktivieren von stderr für Fehler
(timbre/error "Ein Fehler ist bei der Bearbeitung Ihrer Anfrage aufgetreten.")
Dies wird Fehlermeldungen auf stderr leiten und sie von der Standardanwendungsausgabe unterscheiden.