수색…


소개

하스켈의 로깅은 일반적으로 IO 모나드의 기능을 통해 이루어 지므로 비 순수 함수 또는 "IO 작업"으로 제한됩니다.

에서 : 하스켈 프로그램에 정보를 기록하는 방법에는 여러 가지가 있습니다 putStrLn (또는 print ), 라이브러리 등 hslogger 또는 통해 Debug.Trace .

hslogger로 로깅

hslogger 모듈은 Python의 logging 프레임 워크와 비슷한 API를 제공하며 계층 적으로 명명 된 로거, 레벨 및 stdoutstderr 외부의 핸들에 대한 리디렉션을 지원합니다.

기본적으로 WARNING 이상의 모든 메시지는 표준 오류로 보내지고 다른 모든 로그 수준은 무시됩니다.

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"

각 로거에는 이름이 있으며 계층 적으로 배열되어 있으므로 MyProgramMyParent.Module 의 부모입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow