に私はまだHaskellのを学習し、いくつかの機能をデバッグし、通常は特定の操作を開始したときの感覚を取得し、停止するためにタイムスタンプ機能を持っていながら:印刷タイムスタンプデバッグはHaskellの
doSomeAction :: String -> IO()
doSomeAction arg1 = do
putStrLn =<< makeTime
theThingthatTakesAwhile arg1
putStrLn =<< makeTime
where
makeTime = (formatTime defaultTimeLocale "%Y%m%d%H%M%S") <$> getZonedTime
は私=<<
とwhere
です<$>
を含むIO文節でIOと対話する合理的な方法getZonedTime
?
λ> :t getZonedTime
getZonedTime :: IO ZonedTime
これは私や読者、または非慣用的な誤解ですか?
出力は次のとおりです。
まさに私が見たいものです20170114152312
Doing some long function....
20170114152336
---それは私が必要なものを私に伝えます。その効果を得るにはちょうどputStrLn =<< something
に変わっているようです。
内部で 'updateGlobalLogger rootLoggerName'を簡単に呼び出すことができるように、私の関数の外で初期化を宣言する方法を理解する助けになる例を挙げることができますか? – Mittenchops
@Mittenchops私はロギング初期化の例を使って答えを更新しました。 – Shersh