Haskell Language
ロギング
サーチ…
前書き
ハスケルのログインは、通常、 IO
モナドの関数によって実現されるため、非純粋な関数や「IOアクション」に限定されます。
:Haskellのプログラムに情報を記録するには、いくつかの方法がありますputStrLn
(またはprint
)、のようなライブラリへのhsloggerまたは貫通Debug.Trace
。
hsloggerによるロギング
hslogger
モジュールは、Pythonのlogging
フレームワークに似たAPIを提供し、階層的に名前が付けられたロガー、レベル、および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
親です。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow