packages feed

katip 0.5.2.0 → 0.5.3.0

raw patch · 5 files changed

+73/−5 lines, 5 filesdep +unliftio-coredep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: unliftio-core

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Katip.Core: instance Control.Monad.IO.Unlift.MonadUnliftIO m => Control.Monad.IO.Unlift.MonadUnliftIO (Katip.Core.KatipT m)
+ Katip.Monadic: data NoLoggingT m a
+ Katip.Monadic: instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Catch.MonadMask m => Control.Monad.Catch.MonadMask (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Fix.MonadFix m => Control.Monad.Fix.MonadFix (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.IO.Class.MonadIO m => Katip.Core.Katip (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.IO.Class.MonadIO m => Katip.Monadic.KatipContext (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.IO.Unlift.MonadUnliftIO m => Control.Monad.IO.Unlift.MonadUnliftIO (Katip.Monadic.KatipContextT m)
+ Katip.Monadic: instance Control.Monad.IO.Unlift.MonadUnliftIO m => Control.Monad.IO.Unlift.MonadUnliftIO (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Trans.Class.MonadTrans Katip.Monadic.NoLoggingT
+ Katip.Monadic: instance Control.Monad.Trans.Control.MonadBaseControl b m => Control.Monad.Trans.Control.MonadBaseControl b (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance Control.Monad.Trans.Control.MonadTransControl Katip.Monadic.NoLoggingT
+ Katip.Monadic: instance Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance GHC.Base.Alternative m => GHC.Base.Alternative (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance GHC.Base.Applicative m => GHC.Base.Applicative (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance GHC.Base.Functor m => GHC.Base.Functor (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance GHC.Base.Monad m => GHC.Base.Monad (Katip.Monadic.NoLoggingT m)
+ Katip.Monadic: instance GHC.Base.MonadPlus m => GHC.Base.MonadPlus (Katip.Monadic.NoLoggingT m)
- Katip: class ToObject a where toObject v = case toJSON v of { Object o -> o _ -> mempty }
+ Katip: class ToObject a
- Katip: itemApp :: forall a_amsu. Lens' (Item a_amsu) Namespace
+ Katip: itemApp :: forall a_aepw. Lens' (Item a_aepw) Namespace
- Katip: itemEnv :: forall a_amsu. Lens' (Item a_amsu) Environment
+ Katip: itemEnv :: forall a_aepw. Lens' (Item a_aepw) Environment
- Katip: itemHost :: forall a_amsu. Lens' (Item a_amsu) HostName
+ Katip: itemHost :: forall a_aepw. Lens' (Item a_aepw) HostName
- Katip: itemLoc :: forall a_amsu. Lens' (Item a_amsu) (Maybe Loc)
+ Katip: itemLoc :: forall a_aepw. Lens' (Item a_aepw) (Maybe Loc)
- Katip: itemMessage :: forall a_amsu. Lens' (Item a_amsu) LogStr
+ Katip: itemMessage :: forall a_aepw. Lens' (Item a_aepw) LogStr
- Katip: itemNamespace :: forall a_amsu. Lens' (Item a_amsu) Namespace
+ Katip: itemNamespace :: forall a_aepw. Lens' (Item a_aepw) Namespace
- Katip: itemPayload :: forall a_amsu a_apCB. Lens (Item a_amsu) (Item a_apCB) a_amsu a_apCB
+ Katip: itemPayload :: forall a_aepw a_alp1. Lens (Item a_aepw) (Item a_alp1) a_aepw a_alp1
- Katip: itemProcess :: forall a_amsu. Lens' (Item a_amsu) ProcessID
+ Katip: itemProcess :: forall a_aepw. Lens' (Item a_aepw) ProcessID
- Katip: itemSeverity :: forall a_amsu. Lens' (Item a_amsu) Severity
+ Katip: itemSeverity :: forall a_aepw. Lens' (Item a_aepw) Severity
- Katip: itemThread :: forall a_amsu. Lens' (Item a_amsu) ThreadIdText
+ Katip: itemThread :: forall a_aepw. Lens' (Item a_aepw) ThreadIdText
- Katip: itemTime :: forall a_amsu. Lens' (Item a_amsu) UTCTime
+ Katip: itemTime :: forall a_aepw. Lens' (Item a_aepw) UTCTime
- Katip.Core: class ToObject a where toObject v = case toJSON v of { Object o -> o _ -> mempty }
+ Katip.Core: class ToObject a
- Katip.Core: itemApp :: forall a_amsu. Lens' (Item a_amsu) Namespace
+ Katip.Core: itemApp :: forall a_aepw. Lens' (Item a_aepw) Namespace
- Katip.Core: itemEnv :: forall a_amsu. Lens' (Item a_amsu) Environment
+ Katip.Core: itemEnv :: forall a_aepw. Lens' (Item a_aepw) Environment
- Katip.Core: itemHost :: forall a_amsu. Lens' (Item a_amsu) HostName
+ Katip.Core: itemHost :: forall a_aepw. Lens' (Item a_aepw) HostName
- Katip.Core: itemLoc :: forall a_amsu. Lens' (Item a_amsu) (Maybe Loc)
+ Katip.Core: itemLoc :: forall a_aepw. Lens' (Item a_aepw) (Maybe Loc)
- Katip.Core: itemMessage :: forall a_amsu. Lens' (Item a_amsu) LogStr
+ Katip.Core: itemMessage :: forall a_aepw. Lens' (Item a_aepw) LogStr
- Katip.Core: itemNamespace :: forall a_amsu. Lens' (Item a_amsu) Namespace
+ Katip.Core: itemNamespace :: forall a_aepw. Lens' (Item a_aepw) Namespace
- Katip.Core: itemPayload :: forall a_amsu a_apCB. Lens (Item a_amsu) (Item a_apCB) a_amsu a_apCB
+ Katip.Core: itemPayload :: forall a_aepw a_alp1. Lens (Item a_aepw) (Item a_alp1) a_aepw a_alp1
- Katip.Core: itemProcess :: forall a_amsu. Lens' (Item a_amsu) ProcessID
+ Katip.Core: itemProcess :: forall a_aepw. Lens' (Item a_aepw) ProcessID
- Katip.Core: itemSeverity :: forall a_amsu. Lens' (Item a_amsu) Severity
+ Katip.Core: itemSeverity :: forall a_aepw. Lens' (Item a_aepw) Severity
- Katip.Core: itemThread :: forall a_amsu. Lens' (Item a_amsu) ThreadIdText
+ Katip.Core: itemThread :: forall a_aepw. Lens' (Item a_aepw) ThreadIdText
- Katip.Core: itemTime :: forall a_amsu. Lens' (Item a_amsu) UTCTime
+ Katip.Core: itemTime :: forall a_aepw. Lens' (Item a_aepw) UTCTime

Files

changelog.md view
@@ -1,3 +1,8 @@+0.5.3.0+=======+* Add MonadUnliftIO instances.+* Add NoLoggingT+ 0.5.2.0 ======= * Allow newer versions of either by conditionally adding instances for the removed EitherT interface.
katip.cabal view
@@ -1,5 +1,5 @@ name:                katip-version:             0.5.2.0+version:             0.5.3.0 synopsis:            A structured logging framework. description:   Katip is a structured logging framework. See README.md for more details.@@ -78,6 +78,7 @@                , microlens >= 0.2.0.0 && < 0.5                , microlens-th >= 0.1.0.0 && < 0.5                , semigroups+               , unliftio-core >= 0.1 && < 0.2                , stm >= 2.4    hs-source-dirs:      src
src/Katip.hs view
@@ -52,7 +52,7 @@ --   getLogEnv = asks logEnv --   -- with lens: --   -- getLogEnv = view logEnv---   localLogEnv f (App m) = App (local (\s -> s { logEnv = f (logEnv s)}) m)+--   localLogEnv f (App m) = App (local (\\s -> s { logEnv = f (logEnv s)}) m) --   -- with lens: --   -- localLogEnv f (App m) = App (local (over logEnv f) m) --@@ -61,13 +61,13 @@ --   getKatipContext = asks logContext --   -- with lens: --   -- getKatipContext = view logContext---   localKatipContext f (App m) = App (local (\s -> s { logContext = f (logContext s)}) m)+--   localKatipContext f (App m) = App (local (\\s -> s { logContext = f (logContext s)}) m) --   -- with lens: --   -- localKatipContext f (App m) = App (local (over logContext f) m) --   getKatipNamespace = asks logNamespace --   -- with lens: --   -- getKatipNamespace = view logNamespace---   localKatipNamespace f (App m) = App (local (\s -> s { logNamespace = f (logNamespace s)}) m)+--   localKatipNamespace f (App m) = App (local (\\s -> s { logNamespace = f (logNamespace s)}) m) --   -- with lens: --   -- localKatipNamespace f (App m) = App (local (over logNamespace f) m) --
src/Katip/Core.hs view
@@ -33,6 +33,7 @@ import           Control.Monad                         (unless, void) import           Control.Monad.Base import           Control.Monad.IO.Class+import           Control.Monad.IO.Unlift import           Control.Monad.Trans.Class import           Control.Monad.Trans.Control #if !MIN_VERSION_either(4, 5, 0)@@ -833,6 +834,10 @@   liftBaseWith = defaultLiftBaseWith   restoreM = defaultRestoreM +instance MonadUnliftIO m => MonadUnliftIO (KatipT m) where+  askUnliftIO = KatipT $+                withUnliftIO $ \u ->+                pure (UnliftIO (unliftIO u . unKatipT))  ------------------------------------------------------------------------------- -- | Execute 'KatipT' on a log env.
src/Katip/Monadic.hs view
@@ -34,6 +34,7 @@     , katipAddNamespace     , katipAddContext     , KatipContextTState(..)+    , NoLoggingT     ) where  @@ -43,6 +44,7 @@ import           Control.Monad.Base import           Control.Monad.Error.Class import           Control.Monad.IO.Class+import           Control.Monad.IO.Unlift import           Control.Monad.Reader import           Control.Monad.State import           Control.Monad.Trans.Control@@ -137,7 +139,7 @@   localKatipContext :: (LogContexts -> LogContexts) -> m a -> m a   getKatipNamespace :: m Namespace   -- | Temporarily modify the current namespace for the duration of the-  -- supplied monad. Used in 'katipAddContext'+  -- supplied monad. Used in 'katipAddNamespace'   localKatipNamespace :: (Namespace -> Namespace) -> m a -> m a  instance (KatipContext m, Katip (IdentityT m)) => KatipContext (IdentityT m) where@@ -389,7 +391,12 @@   getKatipNamespace = KatipContextT $ ReaderT $ \lts -> return (ltsNamespace lts)   localKatipNamespace f (KatipContextT m) = KatipContextT $ local (\s -> s { ltsNamespace = f (ltsNamespace s)}) m +instance MonadUnliftIO m => MonadUnliftIO (KatipContextT m) where+  askUnliftIO = KatipContextT $+                withUnliftIO $ \u ->+                pure (UnliftIO (unliftIO u . unKatipContextT)) + ------------------------------------------------------------------------------- runKatipContextT :: (LogItem c) => LogEnv -> c -> Namespace -> KatipContextT m a -> m a runKatipContextT le ctx ns = flip runReaderT lts . unKatipContextT@@ -429,3 +436,53 @@     -> m a     -> m a katipAddContext i = localKatipContext (<> (liftPayload i))++newtype NoLoggingT m a = NoLoggingT {+      runNoLoggingT :: m a+    } deriving ( Functor+               , Applicative+               , Monad+               , MonadIO+               , MonadThrow+               , MonadCatch+               , MonadMask+               , MonadBase b+               , MonadState s+               , MonadWriter w+               , MonadError e+               , MonadPlus+               , Alternative+               , MonadFix+               )++instance MonadTrans NoLoggingT where+  lift = NoLoggingT++instance MonadTransControl NoLoggingT where+    type StT NoLoggingT a = a+    liftWith f = NoLoggingT $ f runNoLoggingT+    restoreT = NoLoggingT+    {-# INLINE liftWith #-}+    {-# INLINE restoreT #-}++instance MonadBaseControl b m => MonadBaseControl b (NoLoggingT m) where+     type StM (NoLoggingT m) a = StM m a+     liftBaseWith f = NoLoggingT $+         liftBaseWith $ \runInBase ->+             f $ runInBase . runNoLoggingT+     restoreM = NoLoggingT . restoreM++instance MonadUnliftIO m => MonadUnliftIO (NoLoggingT m) where+  askUnliftIO = NoLoggingT $+                withUnliftIO $ \u ->+                pure (UnliftIO (unliftIO u . runNoLoggingT))++instance MonadIO m => Katip (NoLoggingT m) where+  getLogEnv = liftIO (initLogEnv "NoLoggingT" "no-logging")+  localLogEnv = const id++instance MonadIO m => KatipContext (NoLoggingT m) where+  getKatipContext = pure mempty+  localKatipContext = const id+  getKatipNamespace = pure mempty+  localKatipNamespace = const id