כתיבה לשגיאה התקנית

Haskell:
כתיבה לשגיאה התקנית

איך לעשות:

בהאסקל, כתיבה ל-stderr היא פשוטה באמצעות מודול System.IO של הספרייה הבסיסית. להלן דוגמה בסיסית להדגמה:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "This is an error message."

פלט התכנית הזו ל-stderr יהיה:

This is an error message.

אם אתה עובד ביישום מורכב יותר, או שאתה זקוק לשליטה טובה יותר על רישום הלוגים (כולל השגיאות), ייתכן שתבחר בספרייה מצד שלישי. בחירה פופולרית היא monad-logger שמשתלבת עם סגנון התכנות של mtl בהאסקל. הנה קטע קטן באמצעות monad-logger:

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

main :: IO ()
main = runStderrLoggingT $ do
  logErrorN "This is an error message using monad-logger."

כאשר מריצים, גרסת ה-monad-logger מוציאה באופן דומה הודעת שגיאה, אך היא מצוידת ביותר הקשר כמו חותמות זמן או רמות לוג, בהתאם לתצורה:

[Error] This is an error message using monad-logger.

שני השיטות משרתות את המטרה של כתיבה ל-stderr, כאשר הבחירה תלויה ברובה במורכבות ובצרכים של היישום שלך.