aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Rahm/Desktop/Logger.hs15
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))