Haskell Language
Enregistrement
Recherche…
Introduction
La journalisation dans Haskell se fait généralement via des fonctions dans la monade IO
, et se limite donc aux fonctions non pures ou aux "actions IO".
Il existe plusieurs manières de consigner des informations dans un programme Haskell: de putStrLn
(ou print
) à des bibliothèques telles que hslogger ou Debug.Trace
.
Se connecter avec hslogger
Le module hslogger
fournit une API similaire à la structure de logging
de Python et prend en charge les enregistreurs, les niveaux et la redirection nommés de manière hiérarchique pour les descripteurs situés en dehors de stdout
et de stderr
.
Par défaut, tous les messages de niveau WARNING
et ci-dessus sont envoyés à stderr et tous les autres niveaux de journalisation sont ignorés.
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"
Nous pouvons définir le niveau d'un enregistreur par son nom en utilisant updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
Chaque enregistreur a un nom et ils sont organisés hiérarchiquement. MyProgram
est donc un parent de MyParent.Module
.