Haskell Language
logging
Zoeken…
Invoering
Inloggen op Haskell wordt meestal bereikt via functies in de IO
monade en is dus beperkt tot niet-pure functies of "IO-acties".
Er zijn verschillende manieren om informatie in een Haskell-programma te registreren: van putStrLn
(of print
) tot bibliotheken zoals hslogger of via Debug.Trace
.
Inloggen met hslogger
De hslogger
module biedt een vergelijkbare API om Python's logging
kader, en ondersteunt hiërarchisch naam houthakkers, niveaus en omleiding naar handvatten buiten stdout
en stderr
.
Standaard worden alle berichten van niveau WARNING
en hoger naar stderr verzonden en worden alle andere logboekniveaus genegeerd.
import System.Log.Logger (Priority (DEBUG), debugM, infoM, setLevel,
updateGlobalLogger, warningM)
main = do
debugM "MyProgram.main" "This won't be seen"
infoM "MyProgram.main" "This won't be seen either"
warningM "MyProgram.main" "This will be seen"
We kunnen het niveau van een logger op basis van zijn naam instellen met updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
Elke logger heeft een naam en ze zijn hiërarchisch gerangschikt, dus MyProgram
is een ouder van MyParent.Module
.