packages feed

Blammo 1.0.3.0 → 1.1.0.0

raw patch · 5 files changed

+21/−12 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Blammo.Logging.Logger: getLoggerLoggerSet :: Logger -> LoggerSet
+ Blammo.Logging.Logger: flushLogger :: (MonadIO m, MonadReader env m, HasLogger env) => m ()
- Blammo.Logging: runLoggerLoggingT :: (MonadIO m, HasLogger env) => env -> LoggingT m a -> m a
+ Blammo.Logging: runLoggerLoggingT :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a
- Blammo.Logging.Simple: runSimpleLoggingT :: MonadIO m => LoggingT m a -> m a
+ Blammo.Logging.Simple: runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a

Files

Blammo.cabal view
@@ -1,6 +1,6 @@ cabal-version:   1.18 name:            Blammo-version:         1.0.3.0+version:         1.1.0.0 license:         MIT license-file:    LICENSE maintainer:      Freckle Education
CHANGELOG.md view
@@ -1,4 +1,9 @@-## [_Unreleased_](https://github.com/freckle/blammo/compare/v1.0.3.0...main)+## [_Unreleased_](https://github.com/freckle/blammo/compare/v1.1.0.0...main)++## [v1.1.0.0](https://github.com/freckle/blammo/compare/v1.0.3.0...v1.1.0.0)++- Add `flushLogger`+- Ensure log is flushed even on exceptions.  ## [v1.0.3.0](https://github.com/freckle/blammo/compare/v1.0.2.3...v1.0.3.0) 
src/Blammo/Logging.hs view
@@ -56,18 +56,19 @@ import Blammo.Logging.Logger import Control.Lens ((^.)) import Control.Monad.Catch (MonadMask)-import Control.Monad.IO.Class (MonadIO(..))+import Control.Monad.IO.Unlift (MonadUnliftIO) import Control.Monad.Logger.Aeson import Data.Aeson (Series) import Data.Aeson.Types (Pair) import Data.ByteString (ByteString)+import UnliftIO.Exception (finally) -runLoggerLoggingT :: (MonadIO m, HasLogger env) => env -> LoggingT m a -> m a-runLoggerLoggingT env f = do-  a <- runLoggingT+runLoggerLoggingT+  :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a+runLoggerLoggingT env f = (`finally` flushLogStr logger) $ do+  runLoggingT     (filterLogger (getLoggerShouldLog logger) f)     (loggerOutput logger $ getLoggerReformat logger)-  a <$ flushLogStr logger   where logger = env ^. loggerL  loggerOutput
src/Blammo/Logging/Logger.hs view
@@ -2,6 +2,7 @@   ( Logger   , HasLogger(..)   , newLogger+  , flushLogger   , getLoggerReformat   , getLoggerShouldLog   , pushLogStrLn@@ -13,9 +14,6 @@   , getLoggedMessages   , getLoggedMessagesLenient   , getLoggedMessagesUnsafe--  -- * Deprecated-  , getLoggerLoggerSet   ) where  import Prelude@@ -53,7 +51,6 @@  getLoggerLoggerSet :: Logger -> LoggerSet getLoggerLoggerSet = lLoggerSet-{-# DEPRECATED getLoggerLoggerSet "Internal function, will be removed in a future version" #-}  getLoggerReformat :: Logger -> LogLevel -> ByteString -> ByteString getLoggerReformat = lReformat@@ -104,6 +101,11 @@     lLoggedMessages = Nothing    pure $ Logger { .. }++flushLogger :: (MonadIO m, MonadReader env m, HasLogger env) => m ()+flushLogger = do+  logger <- view loggerL+  flushLogStr logger  -- | Create a 'Logger' that will capture log messages instead of logging them --
src/Blammo/Logging/Simple.hs view
@@ -10,13 +10,14 @@ import Blammo.Logging import qualified Blammo.Logging.LogSettings.Env as Env import Control.Monad.IO.Class (MonadIO(..))+import Control.Monad.IO.Unlift (MonadUnliftIO)  -- | Construct a 'Logger' configured via environment variables newLoggerEnv :: MonadIO m => m Logger newLoggerEnv = liftIO $ newLogger =<< Env.parse  -- | Construct a 'Logger' configured via environment variables and use it-runSimpleLoggingT :: MonadIO m => LoggingT m a -> m a+runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a runSimpleLoggingT f = do   logger <- newLoggerEnv   runLoggerLoggingT logger f