Clojure:
写入标准错误

如何操作:

在Clojure中,你可以使用*err*流写入stderr。这里是一个基本示例:

(.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,使它们与标准应用程序输出区别开来。