Clojure:
표준 에러에 쓰기
방법:
Clojure에서는 *err*
스트림을 사용하여 stderr에 쓸 수 있습니다. 기본 예제는 다음과 같습니다:
(.write *err* "This is an error message.\n")
메시지를 쓴 후에는 스트림을 플러시하여 메시지가 즉시 출력되도록 해야 한다는 것에 유의하십시오:
(flush)
stderr로의 샘플 출력:
This is an error message.
예외를 처리하는 경우, 스택 트레이스를 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로 보내져 표준 애플리케이션 출력과 구별됩니다.