30 lines
579 B
Haskell
30 lines
579 B
Haskell
|
module Client.Log where
|
||
|
|
||
|
import Control.Monad (when)
|
||
|
|
||
|
import Control.Monad.RWS (asks, MonadIO (liftIO))
|
||
|
|
||
|
import Debug.Trace (traceIO)
|
||
|
|
||
|
-- internal imports
|
||
|
|
||
|
import Client.Types (Game, LogLevel, ReaderContainer(rcLogLevel))
|
||
|
|
||
|
logPrint
|
||
|
:: LogLevel
|
||
|
-> String
|
||
|
-> Game ()
|
||
|
logPrint level msg = do
|
||
|
curLevel <- asks rcLogLevel
|
||
|
when (level <= curLevel) $
|
||
|
liftIO $ traceIO $ show level <> ": " <> msg
|
||
|
|
||
|
logPrintIO
|
||
|
:: LogLevel
|
||
|
-> LogLevel
|
||
|
-> String
|
||
|
-> IO ()
|
||
|
logPrintIO curLevel level msg = do
|
||
|
when (level <= curLevel) $
|
||
|
liftIO $ traceIO $ show level <> ": " <> msg
|