Buscar..


Introducción

El registro en Haskell se logra generalmente a través de funciones en la mónada IO , y así se limita a funciones no puras o "acciones IO".

Hay varias formas de registrar información en un programa Haskell: desde putStrLn (o print ), hasta bibliotecas como hslogger o Debug.Trace .

Registro con hslogger

El módulo hslogger proporciona una API similar a la estructura de logging de Python, y admite registradores, niveles y redirección jerárquicamente a los manejadores fuera de stdout y stderr .

De forma predeterminada, todos los mensajes de nivel WARNING y superiores se envían a stderr y todos los demás niveles de registro se ignoran.

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"

Podemos establecer el nivel de un registrador por su nombre usando updateGlobalLogger :

  updateGlobalLogger "MyProgram.main" (setLevel DEBUG)

  debugM "MyProgram.main" "This will now be seen"

Cada registrador tiene un nombre y están ordenados jerárquicamente, por lo que MyProgram es un padre de MyParent.Module .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow