Szukaj…


Wprowadzenie

Logowanie do Haskell odbywa się zwykle poprzez funkcje w monadzie IO , a zatem ogranicza się do funkcji nieoczyszczonych lub „akcji IO”.

Istnieje kilka sposobów rejestrowania informacji w programie Haskell: od putStrLn (lub print ), po biblioteki takie jak hslogger lub poprzez Debug.Trace .

Logowanie za pomocą hsloggera

Moduł hslogger zapewnia API podobne do frameworka logging Pythona i obsługuje hslogger nazwach hierarchicznych, poziomy i przekierowania do uchwytów poza stdout i stderr .

Domyślnie wszystkie wiadomości poziomu WARNING i wyższe są wysyłane do stderr, a wszystkie pozostałe poziomy dziennika są ignorowane.

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"

Możemy ustawić poziom rejestratora według jego nazwy za pomocą updateGlobalLogger :

  updateGlobalLogger "MyProgram.main" (setLevel DEBUG)

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

Każdy rejestrator ma nazwę i są one ułożone hierarchicznie, więc MyProgram jest rodzicem MyParent.Module .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow