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, роблячи їх відмінними від стандартного виводу програми.