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 .



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow