Escrevendo para o erro padrão

Clojure:
Escrevendo para o erro padrão

Como fazer:

Em Clojure, você pode escrever no stderr usando o stream *err*. Aqui está um exemplo básico:

(.write *err* "Esta é uma mensagem de erro.\n")

Note que, após escrever uma mensagem, você deve limpar o stream para garantir que a mensagem seja imediatamente enviada:

(flush)

Exemplo de saída para stderr:

Esta é uma mensagem de erro.

Se você está lidando com exceções, talvez queira imprimir os rastreamentos de pilha no stderr. Use printStackTrace para isso:

(try
  ;; Código que pode lançar uma exceção
  (/ 1 0)
  (catch Exception e
    (.printStackTrace e *err*)))

Para um registro de erros mais estruturado, bibliotecas de terceiros como timbre podem ser configuradas para registrar no stderr. Aqui está uma configuração básica e seu uso:

Primeiro, adicione timbre às suas dependências. Depois, configure-o para usar o stderr:

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

(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Desativa o registro de logs no stdout
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Desativa o registro de logs em arquivo
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Habilita o stderr para erros

(timbre/error "Ocorreu um erro durante o processamento da sua solicitação.")

Isso direcionará mensagens de nível de erro para o stderr, tornando-as distintas da saída padrão da aplicação.