Haskell Language
Skogsavverkning
Sök…
Introduktion
Inloggning i Haskell uppnås vanligtvis genom funktioner i IO
monaden, och är därför begränsad till icke-rena funktioner eller "IO-åtgärder".
Det finns flera sätt att logga in information i ett Haskell-program: från putStrLn
(eller print
), till bibliotek som hslogger eller via Debug.Trace
.
Loggar med hslogger
hslogger
modulen tillhandahåller ett liknande API som Pythons logging
och stöder hierarkiskt namngivna loggare, nivåer och omdirigering till handtag utanför stdout
och stderr
.
Som standard skickas alla meddelanden på nivå WARNING
och WARNING
till stderr och alla andra loggnivåer ignoreras.
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"
Vi kan ställa in nivån på en logger med dess namn med updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
Varje loggare har ett namn, och de är ordnade hierarkiskt, så MyProgram
är en förälder till MyParent.Module
.