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