packages feed

log-warper 0.2.2 → 0.2.3

raw patch · 3 files changed

+13/−13 lines, 3 filesnew-uploader

Files

log-warper.cabal view
@@ -1,5 +1,5 @@ name:                log-warper-version:             0.2.2+version:             0.2.3 synopsis:            Flexible, configurable, monadic and pretty logging homepage:            https://github.com/serokell/log-warper license:             MIT
src/System/Wlog/CanLog.hs view
@@ -30,6 +30,7 @@        , logMessage        ) where +import           Control.Monad.Except      (ExceptT, MonadError) import           Control.Monad.Reader      (MonadReader, ReaderT) import           Control.Monad.State       (MonadState, StateT) import           Control.Monad.Trans       (MonadTrans (lift))@@ -75,6 +76,7 @@ instance CanLog m => CanLog (LoggerNameBox m) instance CanLog m => CanLog (ReaderT r m) instance CanLog m => CanLog (StateT s m)+instance CanLog m => CanLog (ExceptT s m)  -- | Holds all required information for 'dispatchLoggerName' function. data LogEvent = LogEvent@@ -95,7 +97,7 @@ newtype PureLogger m a = PureLogger     { runPureLogger :: WriterT (DList LogEvent) m a     } deriving (Functor, Applicative, Monad, MonadTrans, MonadWriter (DList LogEvent),-                MonadState s, MonadReader r, HasLoggerName)+                MonadState s, MonadReader r, MonadError e, HasLoggerName)  instance Monad m => CanLog (PureLogger m) where     dispatchMessage leLoggerName leSeverity leMessage = tell [LogEvent{..}]
src/System/Wlog/LoggerNameBox.hs view
@@ -15,14 +15,15 @@  import           Control.Monad.Base          (MonadBase) import           Control.Monad.Catch         (MonadCatch, MonadMask, MonadThrow)-import           Control.Monad.Except        (ExceptT (..), runExceptT)+import           Control.Monad.Except        (ExceptT (..), mapExceptT) import           Control.Monad.Fix           (MonadFix)-import           Control.Monad.Reader        (MonadReader (..), ReaderT, runReaderT)-import           Control.Monad.State         (MonadState (get), StateT, evalStateT)+import           Control.Monad.Reader        (MonadReader (..), ReaderT, mapReaderT,+                                              runReaderT)+import           Control.Monad.State         (MonadState, StateT, mapStateT) import           Control.Monad.Trans         (MonadIO, MonadTrans, lift) import           Control.Monad.Trans.Cont    (ContT, mapContT) import           Control.Monad.Trans.Control (MonadBaseControl (..))-import           Control.Monad.Writer        (WriterT (..))+import           Control.Monad.Writer        (WriterT (..), mapWriterT)  import           System.Wlog.LoggerName      (LoggerName) @@ -37,28 +38,25 @@     -- | Change logger name in context     modifyLoggerName :: (LoggerName -> LoggerName) -> m a -> m a - instance (Monad m, HasLoggerName m) => HasLoggerName (ReaderT a m) where     getLoggerName = lift getLoggerName -    modifyLoggerName how m =-        ask >>= lift . modifyLoggerName how . runReaderT m+    modifyLoggerName = mapReaderT . modifyLoggerName  instance (Monad m, HasLoggerName m) => HasLoggerName (StateT a m) where     getLoggerName = lift getLoggerName -    modifyLoggerName how m =-        get >>= lift . modifyLoggerName how . evalStateT m+    modifyLoggerName = mapStateT . modifyLoggerName  instance (Monoid w, Monad m, HasLoggerName m) => HasLoggerName (WriterT w m) where     getLoggerName = lift getLoggerName -    modifyLoggerName how = WriterT . modifyLoggerName how . runWriterT+    modifyLoggerName = mapWriterT . modifyLoggerName  instance (Monad m, HasLoggerName m) => HasLoggerName (ExceptT e m) where     getLoggerName = lift getLoggerName -    modifyLoggerName how = ExceptT . modifyLoggerName how . runExceptT+    modifyLoggerName = mapExceptT . modifyLoggerName  instance (Monad m, HasLoggerName m) => HasLoggerName (ContT r m) where     getLoggerName = lift getLoggerName