diff options
Diffstat (limited to 'src/Rahm')
| -rw-r--r-- | src/Rahm/Desktop/Logger.hs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/Rahm/Desktop/Logger.hs b/src/Rahm/Desktop/Logger.hs index 593f820..b8c2a74 100644 --- a/src/Rahm/Desktop/Logger.hs +++ b/src/Rahm/Desktop/Logger.hs @@ -6,6 +6,7 @@ module Rahm.Desktop.Logger ) where +import Control.Exception import Control.Monad (forM_, join, when) import Data.Time.LocalTime (getZonedTime) import Text.Printf (PrintfArg, PrintfType, printf) @@ -55,8 +56,12 @@ setLogLevel ll = do logs :: (LoggerType r) => LogLevel -> String -> r logs ll fmt = gp (printf fmt) $ \ss -> do LoggerState ll' <- XS.get - io $ do - zoneTime <- getZonedTime - when (ll >= ll') $ - forM_ (lines ss) $ \s -> - putStrLn (printf "[%s %s] - %s" (take 23 $ show zoneTime) (show ll) s) + io $ + catch + ( do + zoneTime <- getZonedTime + when (ll >= ll') $ + forM_ (lines ss) $ \s -> + putStrLn (printf "[%s %s] - %s" (take 23 $ show zoneTime) (show ll) s) + ) + (\error -> putStrLn $ "Error: " ++ show (error :: SomeException)) |