Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 为什么hslogger不写信息日志?_Haskell_Logging - Fatal编程技术网

Haskell 为什么hslogger不写信息日志?

Haskell 为什么hslogger不写信息日志?,haskell,logging,Haskell,Logging,我不明白为什么在此代码中调用infoM时,hslogger不写任何日志: {-# LANGUAGE CPP #-} -- hslogger import System.Log.Logger ( Priority(INFO, WARNING), addHandler , infoM, warningM, updateGlobalLogger ) im

我不明白为什么在此代码中调用infoM时,hslogger不写任何日志:

{-# 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)