Haskell Language
Registrazione
Ricerca…
introduzione
L'accesso ad Haskell avviene solitamente attraverso le funzioni nella monade IO
e quindi limitato a funzioni non pure o "azioni IO".
Esistono diversi modi per registrare le informazioni in un programma Haskell: da putStrLn
(o print
), a librerie come hslogger o tramite Debug.Trace
.
Registrazione con hslogger
Il modulo hslogger
fornisce un'API simile al framework di logging
di Python e supporta logger, livelli e reindirizzamenti gerarchicamente denominati per handle esterni a stdout
e stderr
.
Per impostazione predefinita, tutti i messaggi di livello WARNING
e superiori vengono inviati a stderr e tutti gli altri livelli di registro vengono ignorati.
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"
Possiamo impostare il livello di un logger con il suo nome usando updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
Ogni Logger ha un nome e sono disposti gerarchicamente, quindi MyProgram
è un genitore di MyParent.Module
.