@@ -31,9 +31,6 @@ import qualified Control.Concurrent.STM.TBQueue as BQ
3131import Control.Exception.Safe
3232import Control.Monad (unless, void, when)
3333import Control.Monad.Base
34−#if MIN_VERSION_base(4, 9, 0)
35−import qualified Control.Monad.Fail as MF
36−#endif
3734import Control.Monad.IO.Class
3835import Control.Monad.IO.Unlift
3936import Control.Monad.Trans.Class
@@ -44,8 +41,7 @@ import Control.Monad.Trans.Either
4441import Control.Monad.Trans.Except
4542import Control.Monad.Trans.Maybe
4643import Control.Monad.Trans.Reader
47−import Control.Monad.Trans.Resource (MonadResource, ResourceT,
48− transResourceT)
44+import Control.Monad.Trans.Resource (ResourceT, transResourceT)
4945import Control.Monad.Trans.RWS.Lazy (RWST, mapRWST)
5046import qualified Control.Monad.Trans.RWS.Strict as Strict (RWST, mapRWST)
5147import Control.Monad.Trans.State.Lazy (StateT, mapStateT)
@@ -665,7 +661,7 @@ makeLenses ''LogEnv
665661
666662
667663-------------------------------------------------------------------------------
668−-- | Create a reasonable default InitLogEnv. Uses an 'AutoUpdate' which
664+-- | Create a reasonable default InitLogEnv. Uses an 'AutoUdate' which
669665-- updates the timer every 1ms. If you need even more timestamp
670666-- precision at the cost of performance, consider setting
671667-- '_logEnvTimer' with 'getCurrentTime'.
@@ -880,8 +876,7 @@ instance (Katip m) => Katip (ResourceT m) where
880876-- opposed to implementing 'Katip' for your monad.
881877newtype KatipT m a = KatipT { unKatipT :: ReaderT LogEnv m a }
882878 deriving ( Functor, Applicative, Monad, MonadIO
883− , MonadMask, MonadCatch, MonadThrow, MonadResource, MonadTrans
884− , MonadBase b)
879+ , MonadMask, MonadCatch, MonadThrow, MonadTrans, MonadBase b)
885880
886881
887882instance MonadIO m => Katip (KatipT m) where
@@ -903,20 +898,9 @@ instance (MonadBaseControl b m) => MonadBaseControl b (KatipT m) where
903898 restoreM = defaultRestoreM
904899
905900instance MonadUnliftIO m => MonadUnliftIO (KatipT m) where
906−#if MIN_VERSION_unliftio_core(0, 2, 0)
907− withRunInIO inner = KatipT $ ReaderT $ \le -> withRunInIO $ \run ->
908− inner (run . runKatipT le)
909−#else
910901 askUnliftIO = KatipT $
911− withUnliftIO $ \u ->
912− pure (UnliftIO (unliftIO u . unKatipT))
913−#endif
914−
915−#if MIN_VERSION_base(4, 9, 0)
916−instance MF.MonadFail m => MF.MonadFail (KatipT m) where
917− fail msg = lift (MF.fail msg)
918− {-# INLINE fail #-}
919−#endif
902+ withUnliftIO $ \u ->
903+ pure (UnliftIO (unliftIO u . unKatipT))
920904
921905-------------------------------------------------------------------------------
922906-- | Execute 'KatipT' on a log env.
@@ -948,29 +932,19 @@ logItem
948932 -> m ()
949933logItem a ns loc sev msg = do
950934 LogEnv{..} <- getLogEnv
951− logKatipItem =<< liftIO
952− (Item <$> pure _logEnvApp
953− <*> pure _logEnvEnv
954− <*> pure sev
955− <*> (mkThreadIdText <$> myThreadId)
956− <*> pure _logEnvHost
957− <*> pure _logEnvPid
958− <*> pure a
959− <*> pure msg
960− <*> _logEnvTimer
961− <*> pure (_logEnvApp <> ns)
962− <*> pure loc)
963−
964−-- | Log already constructed 'Item'. This is the lowest level function that other log*
965−-- functions use.
966−-- It can be useful when implementing centralised logging services.
967−logKatipItem
968− :: (A.Applicative m, LogItem a, Katip m)
969− => Item a
970− -> m ()
971−logKatipItem item = do
972− LogEnv{..} <- getLogEnv
973− liftIO $
935+ liftIO $ do
936+ item <- Item
937+ <$> pure _logEnvApp
938+ <*> pure _logEnvEnv
939+ <*> pure sev
940+ <*> (mkThreadIdText <$> myThreadId)
941+ <*> pure _logEnvHost
942+ <*> pure _logEnvPid
943+ <*> pure a
944+ <*> pure msg
945+ <*> _logEnvTimer
946+ <*> pure (_logEnvApp <> ns)
947+ <*> pure loc
974948 FT.forM_ (M.elems _logEnvScribes) $ \ ScribeHandle {..} -> do
975949 whenM (scribePermitItem shScribe item) $
976950 void $ atomically (tryWriteTBQueue shChan (NewItem item))
@@ -1019,7 +993,7 @@ logException
1019993logException a ns sev action = action `catchAny` \e -> f e >> throwM e
1020994 where
1021995 f e = logF a ns sev (msg e)
1022− msg e = ls (T.pack "An exception has occurred: ") <> showLS e
996+ msg e = ls (T.pack "An exception has occured: ") <> showLS e
1023997
1024998
1025999-------------------------------------------------------------------------------