packages feed

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 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 }