packages feed

apiary-logger 1.1.1 → 1.2.0

raw patch · 2 files changed

+37/−52 lines, 2 filesdep ~apiaryPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: apiary

API changes (from Hackage documentation)

- 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: instance (Has Logger es, MonadExts es m, MonadIO m) => MonadLogger m
+ Web.Apiary.Logger: instance Monad m => MonadExts exts (LogWrapper exts m)
- Web.Apiary.Logger: logging :: Logging m => LogStr -> m ()
+ Web.Apiary.Logger: logging :: (Has Logger es, MonadExts es m, MonadIO m) => LogStr -> m ()

Files

apiary-logger.cabal view
@@ -1,5 +1,5 @@ name:                apiary-logger-version:             1.1.1+version:             1.2.0 synopsis:            fast-logger support for apiary web framework. description:   example: <https://github.com/philopon/apiary/blob/master/examples/persistent.hs>@@ -19,7 +19,7 @@ library   exposed-modules:     Web.Apiary.Logger   build-depends:       base               >=4.6   && <4.8-                     , apiary             >=1.1   && <1.2+                     , apiary             >=1.2   && <1.3                      , fast-logger        >=2.1   && <2.3                      , monad-logger       >=0.3   && <0.4                      , data-default-class >=0.0   && <0.1
src/Web/Apiary/Logger.hs view
@@ -1,9 +1,4 @@-{-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}@@ -19,28 +14,33 @@     -- * initialize     , initLogger     -- * action-    , Logging(..)+    , logging     -- * wrapper     , LogWrapper, logWrapper, runLogWrapper     ) where -import System.Log.FastLogger+import qualified System.Log.FastLogger as FL -import Control.Applicative-import Control.Monad.Base-import Control.Monad.IO.Class-import Control.Monad.Trans.Class-import Control.Monad.Logger-import Control.Monad.Trans.Reader+import Control.Applicative(Applicative)+import Control.Monad.Base(MonadBase)+import Control.Monad.IO.Class(MonadIO(liftIO))+import Control.Monad.Trans.Class(MonadTrans(lift))+import Control.Monad.Logger(MonadLogger(..), defaultLogStr)+import Control.Monad.Trans.Reader(ReaderT(..), ask) import Control.Monad.Trans.Control-import Control.Exception.Lifted+    ( MonadTransControl(..), MonadBaseControl(..)+    , defaultLiftWith, defaultRestoreT+    , ComposeSt, defaultLiftBaseWith, defaultRestoreM+    )+import Control.Exception.Lifted(bracket) -import Data.Default.Class+import Data.Default.Class(Default(..)) -import Control.Monad.Apiary-import Control.Monad.Apiary.Action-import Data.Apiary.Compat+import Data.Apiary.Compat(Proxy(..)) import Data.Apiary.Extension+     ( Has, Initializer', initializerBracket'+     , Extensions, Extension, MonadExts(getExts), getExt+     )  data LogDest     = LogFile FilePath@@ -49,27 +49,27 @@     | NoLog  data LogConfig = LogConfig-    { bufferSize :: BufSize+    { bufferSize :: FL.BufSize     , logDest    :: LogDest     }  instance Default LogConfig where-    def = LogConfig defaultBufSize LogStderr+    def = LogConfig FL.defaultBufSize LogStderr  -- | logger extension data type. data Logger = Logger-    { pushLog  :: LogStr -> IO ()+    { pushLog  :: FL.LogStr -> IO ()     , closeLog :: IO ()     } instance Extension Logger -newLogger :: BufSize -> LogDest -> IO Logger-newLogger s (LogFile p) = newFileLoggerSet s p >>= \l -> -    return $ Logger (pushLogStr l) (flushLogStr l)-newLogger s LogStdout = newStdoutLoggerSet s >>= \l -> -    return $ Logger (pushLogStr l) (flushLogStr l)-newLogger s LogStderr = newStderrLoggerSet s >>= \l -> -    return $ Logger (pushLogStr l) (flushLogStr l)+newLogger :: FL.BufSize -> LogDest -> IO Logger+newLogger s (LogFile p) = FL.newFileLoggerSet s p >>= \l -> +    return $ Logger (FL.pushLogStr l) (FL.flushLogStr l)+newLogger s LogStdout = FL.newStdoutLoggerSet s >>= \l -> +    return $ Logger (FL.pushLogStr l) (FL.flushLogStr l)+newLogger s LogStderr = FL.newStderrLoggerSet s >>= \l -> +    return $ Logger (FL.pushLogStr l) (FL.flushLogStr l) newLogger _ NoLog = return $ Logger (\_ -> return ()) (return ())  -- | logger initializer.@@ -79,29 +79,11 @@     (liftIO . closeLog)  -- | push log.-class Logging m where-    logging :: LogStr -> m ()--instance (Has Logger exts, MonadIO m) => Logging (ActionT exts prms m) where-    logging m = getExt (Proxy :: Proxy Logger) >>= \l -> liftIO $ pushLog l m--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'+logging :: (Has Logger es, MonadExts es m, MonadIO m) => FL.LogStr -> m ()+logging m = getExt (Proxy :: Proxy Logger) >>= \l -> liftIO $ pushLog l m -instance (Has Logger exts, MonadIO m) => MonadLogger (LogWrapper exts m) where-    monadLoggerLog = monadLoggerLog'+instance (Has Logger es, MonadExts es m, MonadIO m) => MonadLogger m where+    monadLoggerLog loc src lv msg = logging $ defaultLogStr loc src lv (FL.toLogStr msg)  -- | wrapper to use as MonadLogger using Logger Extenson. newtype LogWrapper exts m a =@@ -124,3 +106,6 @@     newtype StM (LogWrapper exts m) a = StMLogWrapper { unStMLogWrapper :: ComposeSt (LogWrapper exts) m a }     liftBaseWith = defaultLiftBaseWith StMLogWrapper     restoreM     = defaultRestoreM     unStMLogWrapper++instance Monad m => MonadExts exts (LogWrapper exts m) where+    getExts = LogWrapper ask