使用 hslogger 進行日誌記錄

hslogger 模組為 Python 的 logging 框架提供了類似的 API,並支援分層命名的記錄器,級別和重定向到 stdoutstderr 之外的控制代碼。

預設情況下,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"

每個記錄器都有一個名稱,它們按層次排列,因此 MyProgramMyParent.Module 的父級。