apiary-logger 1.1.0 → 1.1.1
raw patch · 2 files changed
+23/−21 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Web.Apiary.Logger: instance (Monad actM, MonadIO m, Has Logger exts) => MonadLogger (ApiaryT exts prms actM m)
- Web.Apiary.Logger: instance (MonadIO m, Has Logger exts) => MonadLogger (ActionT exts prms m)
- Web.Apiary.Logger: instance (MonadIO m, Has Logger exts) => MonadLogger (LogWrapper exts m)
+ Web.Apiary.Logger: class Logging m
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m) => Logging (ActionT exts prms m)
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m) => Logging (LogWrapper exts m)
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m) => MonadLogger (ActionT exts prms m)
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m) => MonadLogger (LogWrapper exts m)
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m, Monad actM) => Logging (ApiaryT exts prms actM m)
+ Web.Apiary.Logger: instance (Has Logger exts, MonadIO m, Monad actM) => MonadLogger (ApiaryT exts prms actM m)
- Web.Apiary.Logger: logging :: (Has Logger exts, MonadIO m) => LogStr -> ActionT exts prms m ()
+ Web.Apiary.Logger: logging :: Logging m => LogStr -> m ()
Files
- apiary-logger.cabal +1/−1
- src/Web/Apiary/Logger.hs +22/−20
apiary-logger.cabal view
@@ -1,5 +1,5 @@ name: apiary-logger-version: 1.1.0+version: 1.1.1 synopsis: fast-logger support for apiary web framework. description: example: <https://github.com/philopon/apiary/blob/master/examples/persistent.hs>
src/Web/Apiary/Logger.hs view
@@ -19,7 +19,7 @@ -- * initialize , initLogger -- * action- , logging+ , Logging(..) -- * wrapper , LogWrapper, logWrapper, runLogWrapper ) where@@ -27,7 +27,6 @@ import System.Log.FastLogger import Control.Applicative-import Control.Monad import Control.Monad.Base import Control.Monad.IO.Class import Control.Monad.Trans.Class@@ -80,22 +79,30 @@ (liftIO . closeLog) -- | push log.-logging :: (Has Logger exts, MonadIO m)- => LogStr -> ActionT exts prms m ()-logging m = do- l <- getExt (Proxy :: Proxy Logger)- liftIO $ pushLog l m+class Logging m where+ logging :: LogStr -> m () -instance (MonadIO m, Has Logger exts) => MonadLogger (ActionT exts prms m) where- monadLoggerLog loc src lv msg = do- l <- getExt (Proxy :: Proxy Logger)- liftIO . pushLog l $ defaultLogStr loc src lv (toLogStr msg)+instance (Has Logger exts, MonadIO m) => Logging (ActionT exts prms m) where+ logging m = getExt (Proxy :: Proxy Logger) >>= \l -> liftIO $ pushLog l m -instance (Monad actM, MonadIO m, Has Logger exts) => MonadLogger (ApiaryT exts prms actM m) where- monadLoggerLog loc src lv msg = do- l <- apiaryExt (Proxy :: Proxy Logger)- liftIO . pushLog l $ defaultLogStr loc src lv (toLogStr msg)+instance (Has Logger exts, MonadIO m, Monad actM) => Logging (ApiaryT exts prms actM m) where+ logging m = apiaryExt (Proxy :: Proxy Logger) >>= \l -> liftIO $ pushLog l m +instance (Has Logger exts, MonadIO m) => Logging (LogWrapper exts m) where+ logging m = LogWrapper ask >>= \e -> liftIO $ pushLog (getExtension (Proxy :: Proxy Logger) e) m++monadLoggerLog' :: (Logging m, ToLogStr msg) => Loc -> LogSource -> LogLevel -> msg -> m ()+monadLoggerLog' loc src lv msg = logging $ defaultLogStr loc src lv (toLogStr msg)++instance (Has Logger exts, MonadIO m) => MonadLogger (ActionT exts prms m) where+ monadLoggerLog = monadLoggerLog'++instance (Has Logger exts, MonadIO m, Monad actM) => MonadLogger (ApiaryT exts prms actM m) where+ monadLoggerLog = monadLoggerLog'++instance (Has Logger exts, MonadIO m) => MonadLogger (LogWrapper exts m) where+ monadLoggerLog = monadLoggerLog'+ -- | wrapper to use as MonadLogger using Logger Extenson. newtype LogWrapper exts m a = LogWrapper { unLogWrapper :: ReaderT (Extensions exts) m a }@@ -107,11 +114,6 @@ runLogWrapper :: Extensions exts -> LogWrapper exts m a -> m a runLogWrapper e = flip runReaderT e . unLogWrapper--instance (MonadIO m, Has Logger exts) => MonadLogger (LogWrapper exts m) where- monadLoggerLog loc src lv msg = do- l <- getExtension (Proxy :: Proxy Logger) `liftM` LogWrapper ask- liftIO . pushLog l $ defaultLogStr loc src lv (toLogStr msg) instance MonadTransControl (LogWrapper exts) where newtype StT (LogWrapper exts) a = StLogWrapper { unStLogWrapper :: StT (ReaderT (Extensions exts)) a }