Haskell Language
логирование
Поиск…
Вступление
Регистрация в Haskell достигается обычно через функции в монаде IO
и поэтому ограничена нечистыми функциями или «действиями IO».
Существует несколько способов записи информации в программу Haskell: из putStrLn
(или print
) в библиотеки, такие как hslogger или через Debug.Trace
.
Регистрация с помощью hslogger
hslogger
модуль обеспечивает аналогичный API для Питона logging
базы, и поддерживает иерархически имени лесорубов, уровни и перенаправление на ручках вне stdout
и stderr
.
По умолчанию все сообщения уровня WARNING
и выше отправляются в stderr, и все остальные уровни журналов игнорируются.
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"
Мы можем установить уровень регистратора по его имени с помощью updateGlobalLogger
:
updateGlobalLogger "MyProgram.main" (setLevel DEBUG)
debugM "MyProgram.main" "This will now be seen"
У каждого регистратора есть имя, и они расположены иерархически, поэтому MyProgram
является родителем MyParent.Module
.