+setupLogger :: [CmdOpt] -> IO ()
+setupLogger opts
+ = do let disableStderrLog = find (== OptDisableStderrLog) opts /= Nothing
+ logHandlers = if disableStderrLog then
+ []
+ else
+ [verboseStreamHandler stderr DEBUG]
+ logLevel = fromMaybe defaultLogLevel
+ $ do OptLogLevel l <- find (\ x -> case x of
+ OptLogLevel _ -> True
+ _ -> False) opts
+ return l
+
+ logHandlers' <- sequence logHandlers
+ updateGlobalLogger rootLoggerName (setHandlers logHandlers' . setLevel logLevel)
+
+