Haskell:
Skriving til standardfeil
Hvordan:
I Haskell er det enkelt å skrive til stderr med basebibliotekets System.IO
-modul. Nedenfor er et grunnleggende eksempel for å demonstrere:
import System.IO
main :: IO ()
main = do
hPutStrLn stderr "Dette er en feilmelding."
Utdataene fra dette programmet til stderr ville være:
Dette er en feilmelding.
Hvis du jobber i en mer kompleks applikasjon, eller hvis du trenger bedre kontroll over logging (inkludert feil), kan du velge et tredjepartsbibliotek. Et populært valg er monad-logger
som integrerer med mtl
-stilen til Haskell-programmering. Her er et lite utdrag som bruker monad-logger
:
{-# LANGUAGE OverloadedStrings #-}
import Control.Monad.Logger
main :: IO ()
main = runStderrLoggingT $ do
logErrorN "Dette er en feilmelding som bruker monad-logger."
Når den kjøres, gir monad-logger
-versjonen på samme måte ut en feilmelding, men den er utstyrt med mer kontekst, som tidsstempler eller loggnivåer, avhengig av konfigurasjonen:
[Error] Dette er en feilmelding som bruker monad-logger.
Begge metodene tjener formålet med å skrive til stderr, med valget som i stor grad avhenger av kompleksiteten og behovene til applikasjonen din.