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.