Haskell:
標準エラーへの書き込み
方法:
Haskellでstderrに書き込むことは、基本ライブラリのSystem.IO
モジュールを使って簡単に行えます。以下に基本例を示します:
import System.IO
main :: IO ()
main = do
hPutStrLn stderr "これはエラーメッセージです。"
このプログラムのstderrへの出力は以下の通りです:
これはエラーメッセージです。
もし、より複雑なアプリケーションで作業している場合、またはログ(エラーを含む)に対してより良い制御が必要な場合は、サードパーティのライブラリを選択するかもしれません。一つの人気な選択肢は、Haskellプログラミングのmtl
スタイルと統合するmonad-logger
です。こちらはmonad-logger
を使用した小さなスニペットです:
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger
main :: IO ()
main = runStderrLoggingT $ do
logErrorN "これはmonad-loggerを使ったエラーメッセージです。"
実行時に、monad-logger
バージョンも同様にエラーメッセージを出力しますが、設定に応じて、タイムスタンプやログレベルなどのより多くのコンテキストが装備されています:
[Error] これはmonad-loggerを使ったエラーメッセージです。
両方の方法はstderrに書き込む目的を果たしますが、選択は大きくアプリケーションの複雑さとニーズに依存します。