Haskell:
Запис до стандартної помилки

Як це зробити:

У Haskell запис у stderr виконується просто за допомогою модуля System.IO базової бібліотеки. Нижче наведено базовий приклад для демонстрації:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "Це повідомлення про помилку."

Вивід цієї програми у stderr буде:

Це повідомлення про помилку.

Якщо ви працюєте над більш складною аплікацією або якщо вам потрібний кращий контроль над логуванням (включаючи помилки), ви могли б обрати сторонню бібліотеку. Одним з популярних виборів є monad-logger, який інтегрується зі стилем програмування mtl на Haskell. Ось невеликий фрагмент, який використовує monad-logger:

{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger

main :: IO ()
main = runStderrLoggingT $ do
  logErrorN "Це повідомлення про помилку, використовуючи monad-logger."

При запуску версія monad-logger аналогічно виводить повідомлення про помилку, але воно оснащене більшим контекстом, як-от часові мітки або рівні логування, залежно від конфігурації:

[Помилка] Це повідомлення про помилку, використовуючи monad-logger.

Обидва методи служать для запису в stderr, і вибір в основному залежить від складності та потреб вашої аплікації.