log-warper 1.1.3 → 1.1.4
raw patch · 4 files changed
+28/−18 lines, 4 files
Files
- CHANGES.md +5/−0
- log-warper.cabal +1/−1
- src/System/Wlog/CanLog.hs +16/−16
- src/System/Wlog/LoggerNameBox.hs +6/−1
CHANGES.md view
@@ -1,3 +1,8 @@+1.1.4+=====++* Add `CanLog` and `HasLoggerName` instances for both strict and lazy `State`.+ 1.1.3 =====
log-warper.cabal view
@@ -1,5 +1,5 @@ name: log-warper-version: 1.1.3+version: 1.1.4 synopsis: Flexible, configurable, monadic and pretty logging homepage: https://github.com/serokell/log-warper license: MIT
src/System/Wlog/CanLog.hs view
@@ -37,23 +37,23 @@ , logMessage ) where -import Control.Monad.Base (MonadBase)-import Control.Monad.Except (ExceptT, MonadError)-import Control.Monad.Morph (MFunctor (..))-import qualified Control.Monad.RWS as RWSLazy-import qualified Control.Monad.RWS.Strict as RWSStrict-import qualified Control.Monad.State.Strict as StateStrict-import Control.Monad.Trans (MonadTrans (lift))-import Control.Monad.Writer (MonadWriter (tell), WriterT (runWriterT))-import qualified Data.DList as DL (DList)-import Data.SafeCopy (base, deriveSafeCopySimple)+import Control.Monad.Base (MonadBase)+import Control.Monad.Except (ExceptT, MonadError)+import Control.Monad.Morph (MFunctor (..))+import qualified Control.Monad.RWS as RWSLazy+import qualified Control.Monad.RWS.Strict as RWSStrict+import qualified Control.Monad.State.Lazy as StateLazy+import Control.Monad.Trans (MonadTrans (lift))+import Control.Monad.Writer (MonadWriter (tell), WriterT (runWriterT))+import qualified Data.DList as DL (DList)+import Data.SafeCopy (base, deriveSafeCopySimple) import Universum -import System.Wlog.Logger (logM)-import System.Wlog.LoggerName (LoggerName (..))-import System.Wlog.LoggerNameBox (HasLoggerName (..), LoggerNameBox (..),- usingLoggerName)-import System.Wlog.Severity (Severity (..))+import System.Wlog.Logger (logM)+import System.Wlog.LoggerName (LoggerName (..))+import System.Wlog.LoggerNameBox (HasLoggerName (..), LoggerNameBox (..),+ usingLoggerName)+import System.Wlog.Severity (Severity (..)) -- | Type alias for constraints 'CanLog' and 'HasLoggerName'.@@ -80,7 +80,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 (StateStrict.StateT s m)+instance CanLog m => CanLog (StateLazy.StateT s m) instance CanLog m => CanLog (ExceptT s m) instance (CanLog m, Monoid w) => CanLog (RWSLazy.RWST r w s m) instance (CanLog m, Monoid w) => CanLog (RWSStrict.RWST r w s m)
src/System/Wlog/LoggerNameBox.hs view
@@ -23,7 +23,8 @@ runReaderT) import qualified Control.Monad.RWS as RWSLazy import qualified Control.Monad.RWS.Strict as RWSStrict-import Control.Monad.State (MonadState, StateT, mapStateT)+import qualified Control.Monad.State as StateLazy (StateT, mapStateT)+import Control.Monad.State.Strict (MonadState, StateT, mapStateT) import Control.Monad.Trans (MonadIO, MonadTrans, lift) import Control.Monad.Trans.Cont (ContT, mapContT) import Control.Monad.Trans.Control (MonadBaseControl (..))@@ -52,6 +53,10 @@ getLoggerName = lift getLoggerName modifyLoggerName = mapStateT . modifyLoggerName++instance (Monad m, HasLoggerName m) => HasLoggerName (StateLazy.StateT a m) where+ getLoggerName = lift getLoggerName+ modifyLoggerName = StateLazy.mapStateT . modifyLoggerName instance (Monoid w, Monad m, HasLoggerName m) => HasLoggerName (WriterT w m) where getLoggerName = lift getLoggerName