Haskell 为什么hslogger不写信息日志?
我不明白为什么在此代码中调用infoM时,hslogger不写任何日志:Haskell 为什么hslogger不写信息日志?,haskell,logging,Haskell,Logging,我不明白为什么在此代码中调用infoM时,hslogger不写任何日志: {-# LANGUAGE CPP #-} -- hslogger import System.Log.Logger ( Priority(INFO, WARNING), addHandler , infoM, warningM, updateGlobalLogger ) im
{-# LANGUAGE CPP #-}
-- hslogger
import System.Log.Logger ( Priority(INFO, WARNING), addHandler
, infoM, warningM, updateGlobalLogger
)
import System.Log.Handler.Simple (fileHandler)
#define INF
main :: IO ()
main = do
let logger = "main"
#ifdef INF
let fileName = "info.log"
h1 <- fileHandler fileName INFO
putStrLn "opened file1"
updateGlobalLogger logger $ addHandler h1
putStrLn "will write1"
infoM logger "writing 1"
putStrLn "did write1"
#else
let fileName = "warn.log"
h2 <- fileHandler fileName WARNING
putStrLn "opened file2"
updateGlobalLogger logger $ addHandler h2
putStrLn "will write2"
warningM logger "writing 2"
putStrLn "did write2"
#endif
{-#语言CPP}
--高速记录器
导入System.Log.Logger(优先级(信息、警告),addHandler
,infoM,warningM,UpdateGlobalLoger
)
导入System.Log.Handler.Simple(fileHandler)
#定义INF
main::IO()
main=do
让logger=“main”
#ifdef-INF
让fileName=“info.log”
h1如果我正确地记得hslogger
中的默认日志级别是警告
,如果您想查看信息
消息,应该将其设置为信息
updateGlobalLogger logger $ setLevel INFO
也许你真的需要使用CPP
扩展,但是如果你能不使用它,我建议你放弃它。丹尼-你的建议解决了我的问题。我没有完全理解hslogger是如何工作的。谢谢你的帮助。
updateGlobalLogger rootLoggerName (setLevel INFO)