Haskell Language
Protokollierung
Suche…
Einführung
Die Protokollierung in Haskell wird normalerweise durch Funktionen in der IO
Monade erreicht und ist daher auf nicht reine Funktionen oder "E / A-Aktionen" beschränkt.
Es gibt verschiedene Möglichkeiten, Informationen in einem Haskell-Programm zu protokollieren: von putStrLn
(oder print
) über Bibliotheken wie hslogger oder über Debug.Trace
.
Protokollierung mit hslogger
Das hslogger
Modul bietet eine ähnliche API wie das logging
Framework von Python und unterstützt hierarchisch benannte Logger, Ebenen und Umleitungen für Handles außerhalb von stdout
und stderr
.
Standardmäßig werden alle Meldungen der Stufe WARNING
und höher an stderr gesendet und alle anderen Protokollebenen werden ignoriert.
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"
Wir können den Pegel eines Loggers mit updateGlobalLogger
anhand seines Namens updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
Jeder Logger hat einen Namen und diese sind hierarchisch angeordnet, sodass MyProgram
ein übergeordnetes MyParent.Module
von MyParent.Module
.