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 .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow