Schrijven naar standaardfout

Haskell:
Schrijven naar standaardfout

Hoe:

Gebruik System.IO om naar stderr te schrijven. Hier is een eenvoudige demo:

import System.IO

main :: IO ()
main = do
  hPutStrLn stderr "Dit gaat naar stderr"
  putStrLn "Dit gaat naar stdout"

Uitvoer bij het uitvoeren van het programma:

Dit gaat naar stdout

Om de stderr-uitvoer te zien, redirect je deze:

runhaskell jouw_programma.hs 2> fout.log

fout.log bevat nu “Dit gaat naar stderr”.

Diepere Duik

Het IO-systeem van Haskell onderscheidt tussen stdout en stderr, waarbij de Unix-conventies in stand worden gehouden. Voor Haskell stelden talen zoals C het precedent van gescheiden stromen in—stdout voor resultaten, stderr voor fouten en logs.

Alternatieve manieren van uitvoer omvatten het gebruiken van bibliotheken zoals System.Log.Logger voor meer complexe logboekregistratie. Met betrekking tot implementatie is stderr in Haskell een Handle, net als een bestandshandle, maar vooraf gedefinieerd om naar de systeemfoutuitvoer te verwijzen.

Zie Ook