Haskell:
Kirjoittaminen standardivirheeseen
Kuinka:
Haskellissa stderriin kirjoittaminen on suoraviivaista peruskirjaston System.IO
-moduulin avulla. Alla on perusesimerkki esittelynä:
import System.IO
main :: IO ()
main = do
hPutStrLn stderr "Tämä on virheilmoitus."
Tämän ohjelman tuloste stderriin olisi:
Tämä on virheilmoitus.
Jos työskentelet monimutkaisemmassa sovelluksessa tai tarvitset parempaa hallintaa lokitukseen (mukaan lukien virheet), saatat valita kolmannen osapuolen kirjaston. Yksi suosittu vaihtoehto on monad-logger
, joka integroituu Haskell-ohjelmoinnin mtl
-tyyliin. Tässä on pieni pätkä käyttäen monad-logger
ia:
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger
main :: IO ()
main = runStderrLoggingT $ do
logErrorN "Tämä on virheilmoitus käyttäen monad-loggeria."
Kun ajetaan, monad-logger
-versio tuottaa samoin virheilmoituksen, mutta se on varustettu enemmän kontekstilla kuten aikaleimoilla tai lokitasoilla, riippuen konfiguraatiosta:
[Error] Tämä on virheilmoitus käyttäen monad-loggeria.
Molemmat menetelmät palvelevat stderriin kirjoittamisen tarkoitusta, ja valinta riippuu suurelta osin sovelluksesi monimutkaisuudesta ja tarpeista.