Haskell:
การเขียนไปยังข้อผิดพลาดมาตรฐาน
วิธีการ:
ใน 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
ซึ่งรวมเข้ากับสไตล์การเขียนโปรแกรม Haskell แบบ 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 โดยการเลือกวิธีการขึ้นอยู่กับความซับซ้อนและความต้องการของแอปพลิเคชันของคุณ