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 .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow