packages feed

logging-effect 1.3.0 → 1.3.1

raw patch · 4 files changed

+21/−6 lines, 4 filesdep +unliftio-coredep −wl-pprint-textdep ~prettyprinterPVP ok

version bump matches the API change (PVP)

Dependencies added: unliftio-core

Dependencies removed: wl-pprint-text

Dependency ranges changed: prettyprinter

API changes (from Hackage documentation)

+ Control.Monad.Log: instance Control.Monad.IO.Unlift.MonadUnliftIO m => Control.Monad.IO.Unlift.MonadUnliftIO (Control.Monad.Log.LoggingT msg m)

Files

Benchmark.hs view
@@ -6,11 +6,12 @@ import Criterion.Main import qualified Control.Monad.Log as LoggingEffect import qualified Control.Monad.Logger as MonadLogger-import qualified Data.ByteString as BS+import qualified Data.ByteString.Char8 as BS import System.Log.FastLogger (fromLogStr, toLogStr) import Data.Monoid ((<>)) import qualified Data.Text.IO as T-import qualified Text.PrettyPrint.Leijen.Text as PP+import qualified Data.Text.Prettyprint.Doc as PP+import qualified Data.Text.Prettyprint.Doc.Render.Text as PP import System.IO (stdout) import Control.Concurrent.Async.Lifted import Data.Foldable (sequenceA_)@@ -33,9 +34,9 @@                    , bgroup "discard-logs" [ bench "logging-effect" (nfIO (LoggingEffect.discardLogging loggingEffectLog))                                            , bench "monad-logger" (nfIO (MonadLogger.runNoLoggingT monadLoggerLog))]] -loggingEffectStdoutHandler = PP.putDoc . (<> PP.linebreak) . LoggingEffect.renderWithSeverity id+loggingEffectStdoutHandler = PP.putDoc . (<> PP.line') . LoggingEffect.renderWithSeverity id -loggingEffectLog :: LoggingEffect.MonadLog (LoggingEffect.WithSeverity PP.Doc) m => m ()+loggingEffectLog :: LoggingEffect.MonadLog (LoggingEffect.WithSeverity (PP.Doc ann)) m => m () loggingEffectLog = LoggingEffect.logMessage (LoggingEffect.WithSeverity LoggingEffect.Debug "Log message")  monadLoggerLog :: MonadLogger.MonadLogger m => m ()
Changelog.md view
@@ -1,3 +1,9 @@+## 1.3.1++* Add `MonadUnliftIO` instance for `LoggingT`.++---+ # 1.3.0  ## Major Changes
logging-effect.cabal view
@@ -1,5 +1,5 @@ name: logging-effect-version: 1.3.0+version: 1.3.1 synopsis: A mtl-style monad transformer for general purpose & compositional logging homepage: https://github.com/ocharles/logging-effect license: BSD3@@ -27,6 +27,7 @@                      , monad-control >= 1.0.0.4 && < 1.1                      , transformers-base >= 0.4.4 && < 0.5                      , semigroups >= 0.16.2.2 && < 0.19+                     , unliftio-core >= 0.1.1.0 && < 0.2   hs-source-dirs:      src   default-language:    Haskell2010   ghc-options: -O2 -Wall@@ -34,6 +35,6 @@ Benchmark benchmark-logging-effect   type: exitcode-stdio-1.0   main-is: Benchmark.hs-  build-depends: base, logging-effect, criterion, monad-logger, fast-logger, text, bytestring, wl-pprint-text, lifted-async, time+  build-depends: base, logging-effect, criterion, monad-logger, fast-logger, text, bytestring, prettyprinter, lifted-async, time   ghc-options: -O2   default-language:    Haskell2010
src/Control/Monad/Log.hs view
@@ -83,6 +83,7 @@ import Control.Monad.Fix import Control.Monad.Free.Class (MonadFree(..)) import Control.Monad.IO.Class (MonadIO, liftIO)+import Control.Monad.IO.Unlift (MonadUnliftIO(..), UnliftIO(..), withUnliftIO) import Control.Monad.RWS.Class (MonadRWS) import Control.Monad.Reader.Class (MonadReader(..)) import Control.Monad.State.Class (MonadState(..))@@ -379,6 +380,12 @@                               runInBase (\(LoggingT (ReaderT m)) ->                                            runInReader (m handler)))))   restoreM st = LoggingT (ReaderT (\_ -> restoreM st))++instance MonadUnliftIO m => MonadUnliftIO (LoggingT msg m) where+  askUnliftIO =+    LoggingT . ReaderT $ \h ->+      withUnliftIO $ \u ->+        return (UnliftIO (unliftIO u . flip runLoggingT h))  -- | Given a 'Handler' for a given @message@, interleave this 'Handler' into the -- underlying @m@ computation whenever 'logMessage' is called.