Clojure:
Запис до стандартної помилки

Як це зробити:

У Clojure ви можете писати в stderr, використовуючи потік *err*. Ось простий приклад:

(.write *err* "Це повідомлення про помилку.\n")

Зауважте, що після написання повідомлення, вам слід очистити потік, щоб переконатись, що повідомлення відразу виводиться:

(flush)

Приклад виводу в stderr:

Це повідомлення про помилку.

Якщо ви обробляєте виключення, вам може знадобитися друкувати траси стека в stderr. Для цього використовуйте printStackTrace:

(try
  ;; Код, що може сгенерувати виключення
  (/ 1 0)
  (catch Exception e
    (.printStackTrace e *err*)))

Для більш структурованого логування помилок могли бути налаштовані сторонні бібліотеки, як-от timbre, для логування в stderr. Ось основна настройка та використання:

Спочатку додайте timbre до ваших залежностей. Потім налаштуйте його на використання stderr:

(require '[taoensso.timbre :as timbre])

(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Вимкнути логування stdout
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Відключити логування до файлу
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Увімкнути stderr для помилок

(timbre/error "Під час обробки вашого запиту сталася помилка.")

Це спрямує повідомлення про помилки на рівні помилок в stderr, роблячи їх відмінними від стандартного виводу програми.