Created
September 22, 2015 15:22
-
-
Save jokester/1145071d28394cbcb30b to your computer and use it in GitHub Desktop.
Witness me!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import System.Environment (setEnv, lookupEnv) | |
doWriteLog :: Int -> Int -> String -> IO () | |
doWriteLog logLevel messageLevel message | |
| messageLevel >= logLevel = putStrLn message | |
doWriteLog _ _ _ = return () | |
setLogLevel :: Int -> IO () | |
setLogLevel newLogLevel = do | |
setEnv "__loglevel" $ show newLogLevel | |
getLogLevel :: IO Int | |
getLogLevel = do | |
maybeLevel <- lookupEnv "__loglevel" | |
case maybeLevel of | |
Nothing -> return 3 | |
Just someStr -> return (read someStr :: Int) | |
mylog :: Int -> String -> IO () | |
mylog messageLevel message = do | |
logLevel <- getLogLevel | |
doWriteLog logLevel messageLevel message | |
main = do | |
mylog 2 "will not be printed" | |
mylog 3 "witness me!" | |
setLogLevel 2 | |
mylog 2 "bloodbag!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment