標準エラーへの書き込み

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に向けられ、標準アプリケーション出力と区別されます。