การเขียนไปยังข้อผิดพลาดมาตรฐาน

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