log-warper 0.2.2 → 0.2.3
raw patch · 3 files changed
+13/−13 lines, 3 filesnew-uploader
Files
- log-warper.cabal +1/−1
- src/System/Wlog/CanLog.hs +3/−1
- src/System/Wlog/LoggerNameBox.hs +9/−11
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