Clojure:
Escribiendo en el error estándar
Cómo hacerlo:
En Clojure, puedes escribir en stderr utilizando el flujo *err*. Aquí tienes un ejemplo básico:
(.write *err* "Este es un mensaje de error.\n")Nota que después de escribir un mensaje, debes vaciar el flujo para asegurar que el mensaje se muestre inmediatamente:
(flush)Ejemplo de salida a stderr:
Este es un mensaje de error.Si estás manejando excepciones, es posible que desees imprimir rastreos de pila en stderr. Usa printStackTrace para esto:
(try
;; Código que podría lanzar una excepción
(/ 1 0)
(catch Exception e
(.printStackTrace e *err*)))Para un registro de errores más estructurado, bibliotecas de terceros como timbre pueden configurarse para registrar en stderr. Aquí tienes una configuración y uso básicos:
Primero, añade timbre a tus dependencias. Luego configúralo para usar stderr:
(require '[taoensso.timbre :as timbre])
(timbre/set-config! [:appenders :standard-out :enabled?] false) ;; Deshabilita el registro en stdout
(timbre/set-config! [:appenders :spit :enabled?] false) ;; Deshabilita el registro en archivos
(timbre/set-config! [:appenders :stderr :min-level] :error) ;; Habilita stderr para errores
(timbre/error "Ocurrió un error mientras se procesaba su solicitud.")Esto dirigirá los mensajes de nivel de error a stderr, haciéndolos distintos de la salida estándar de la aplicación.