packages feed

Blammo 2.0.0.0 → 2.1.0.0

raw patch · 8 files changed

+100/−74 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Blammo.Logging: LogColorAlways :: LogColor
- Blammo.Logging: LogColorAuto :: LogColor
- Blammo.Logging: LogColorNever :: LogColor
- Blammo.Logging: LogDestinationFile :: FilePath -> LogDestination
- Blammo.Logging: LogDestinationStderr :: LogDestination
- Blammo.Logging: LogDestinationStdout :: LogDestination
- Blammo.Logging: LogFormatJSON :: LogFormat
- Blammo.Logging: LogFormatTerminal :: LogFormat
- Blammo.Logging: WithLogger :: ReaderT env m a -> WithLogger env m a
- Blammo.Logging: class HasLogger env
- Blammo.Logging: class MonadCatch m => MonadMask (m :: Type -> Type)
- Blammo.Logging: data LogColor
- Blammo.Logging: data LogDestination
- Blammo.Logging: data LogFormat
- Blammo.Logging: data LogSettings
- Blammo.Logging: data () => LoggingT (m :: Type -> Type) a
- Blammo.Logging: defaultLogSettings :: LogSettings
- Blammo.Logging: loggerL :: HasLogger env => Lens' env Logger
- Blammo.Logging: myThreadContext :: (MonadIO m, MonadThrow m) => m (KeyMap Value)
- Blammo.Logging: newLogger :: MonadIO m => LogSettings -> m Logger
- Blammo.Logging: newtype WithLogger env m a
- Blammo.Logging: runLoggerLoggingT :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a
- Blammo.Logging: runWithLogger :: env -> WithLogger env m a -> m a
- Blammo.Logging: setLogSettingsBreakpoint :: Int -> LogSettings -> LogSettings
- Blammo.Logging: setLogSettingsColor :: LogColor -> LogSettings -> LogSettings
- Blammo.Logging: setLogSettingsConcurrency :: Maybe Int -> LogSettings -> LogSettings
- Blammo.Logging: setLogSettingsDestination :: LogDestination -> LogSettings -> LogSettings
- Blammo.Logging: setLogSettingsFormat :: LogFormat -> LogSettings -> LogSettings
- Blammo.Logging: setLogSettingsLevels :: LogLevels -> LogSettings -> LogSettings
- Blammo.Logging: type Pair = (Key, Value)
- Blammo.Logging: withLogger :: MonadUnliftIO m => LogSettings -> (Logger -> m a) -> m a
- Blammo.Logging: withThreadContext :: (MonadIO m, MonadMask m) => [Pair] -> m a -> m a
- Blammo.Logging.Simple: newLoggerEnv :: MonadIO m => m Logger
- Blammo.Logging.Simple: runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a
- Blammo.Logging.Simple: withLoggerEnv :: MonadUnliftIO m => (Logger -> m a) -> m a
+ Blammo.Logging.Setup: WithLogger :: ReaderT env m a -> WithLogger env m a
+ Blammo.Logging.Setup: class HasLogger env
+ Blammo.Logging.Setup: data () => LoggingT (m :: Type -> Type) a
+ Blammo.Logging.Setup: loggerL :: HasLogger env => Lens' env Logger
+ Blammo.Logging.Setup: newLogger :: MonadIO m => LogSettings -> m Logger
+ Blammo.Logging.Setup: newLoggerEnv :: MonadIO m => m Logger
+ Blammo.Logging.Setup: newtype WithLogger env m a
+ Blammo.Logging.Setup: runLoggerLoggingT :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a
+ Blammo.Logging.Setup: runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a
+ Blammo.Logging.Setup: runWithLogger :: env -> WithLogger env m a -> m a
+ Blammo.Logging.Setup: withLogger :: MonadUnliftIO m => LogSettings -> (Logger -> m a) -> m a
+ Blammo.Logging.Setup: withLoggerEnv :: MonadUnliftIO m => (Logger -> m a) -> m a
+ Blammo.Logging.ThreadContext: class MonadCatch m => MonadMask (m :: Type -> Type)
+ Blammo.Logging.ThreadContext: myThreadContext :: (MonadIO m, MonadThrow m) => m (KeyMap Value)
+ Blammo.Logging.ThreadContext: type Pair = (Key, Value)
+ Blammo.Logging.ThreadContext: withThreadContext :: (MonadIO m, MonadMask m) => [Pair] -> m a -> m a

Files

Blammo.cabal view
@@ -1,6 +1,6 @@ cabal-version:   1.18 name:            Blammo-version:         2.0.0.0+version:         2.1.0.0 license:         MIT license-file:    LICENSE maintainer:      Freckle Education@@ -27,10 +27,12 @@         Blammo.Logging.LogSettings         Blammo.Logging.LogSettings.Env         Blammo.Logging.LogSettings.LogLevels+        Blammo.Logging.Setup         Blammo.Logging.Simple         Blammo.Logging.Terminal         Blammo.Logging.Terminal.LogPiece         Blammo.Logging.Test+        Blammo.Logging.ThreadContext         Blammo.Logging.WithLogger         Data.Aeson.Compat         System.Log.FastLogger.Compat
CHANGELOG.md view
@@ -1,6 +1,28 @@-## [_Unreleased_](https://github.com/freckle/blammo/compare/v1.2.1.0...main)+## [_Unreleased_](https://github.com/freckle/blammo/compare/Blammo-v2.2.0.0...main) -## [v2.0.0.0](https://github.com/freckle/blammo/compare/v1.2.1.0...v2.0.0.0)+## [v2.1.0.0](https://github.com/freckle/blammo/compare/v2.0.0.0...Blammo-v2.1.0.0)++Removes less frequently used definitions from the main `Blammo.Logging` module+into other modules.++- Moved from `Blammo.Logging` to new module `Blammo.Logging.ThreadContext`:+  `MonadMask`, `withThreadContext`, `myThreadContext`, `Pair`.+- Removed from `Blammo.Logging` (still available in `Blammo.Logging.LogSettings`):+  `LogSettings`, `LogDestination (..)`, `LogFormat (..)`, `defaultLogSettings`,+  `LogColor (..)`, `setLogSettingsLevels`, `setLogSettingsDestination`,+  `setLogSettingsFormat`, `setLogSettingsColor`, `setLogSettingsBreakpoint`,+  `setLogSettingsConcurrency`.+- Moved from `Blammo.Logging` to new module `Blammo.Logging.Setup`:+  `HasLogger (..)`, `withLogger`, `newLogger`, `runLoggerLoggingT`, `LoggingT`,+  `WithLogger (..)`, `runWithLogger`++`Blammo.Logging.Simple` has been expanded to include reëxports of:++- `Blammo.Logging.LogSettings`+- `Blammo.Logging.Setup`+- `Blammo.Logging.ThreadContext`++## [v2.0.0.0](https://github.com/freckle/blammo/compare/v1.2.1.0...Blammo-v2.0.0.0)  - Remove module `Network.Wai.Middleware.Logging`. It is moved to a new   package, `Blammo-wai`.
src/Blammo/Logging.hs view
@@ -1,21 +1,6 @@ module Blammo.Logging-  ( LogSettings-  , LogLevel (..)-  , LogDestination (..)-  , LogFormat (..)-  , LogColor (..)-  , defaultLogSettings-  , setLogSettingsLevels-  , setLogSettingsDestination-  , setLogSettingsFormat-  , setLogSettingsColor-  , setLogSettingsBreakpoint-  , setLogSettingsConcurrency+  ( LogLevel (..)   , Logger-  , HasLogger (..)-  , withLogger-  , newLogger-  , runLoggerLoggingT      -- * Re-exports from "Control.Monad.Logger.Aeson" @@ -24,18 +9,9 @@   , (.=)   , Series -    -- ** Thread Context-  , MonadMask-  , withThreadContext-  , myThreadContext-  , Pair--    -- ** Transformers+    -- ** Classes   , MonadLogger (..)   , MonadLoggerIO (..)-  , LoggingT-  , WithLogger (..)-  , runWithLogger      -- ** Common logging functions @@ -57,23 +33,6 @@   , logOtherNS   ) where -import Blammo.Logging.LogSettings import Blammo.Logging.Logger-import Blammo.Logging.WithLogger-import Control.Lens (view)-import Control.Monad.Catch (MonadMask)-import Control.Monad.IO.Unlift (MonadUnliftIO) import Control.Monad.Logger.Aeson import Data.Aeson (Series)-import Data.Aeson.Types (Pair)-import UnliftIO.Exception (finally)---- | Initialize logging, pass a 'Logger' to the callback, and clean up at the end------ Applications should avoid calling this more than once in their lifecycle.-runLoggerLoggingT-  :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a-runLoggerLoggingT env f =-  runLoggingT f (runLogAction logger) `finally` flushLogStr logger- where-  logger = view loggerL env
+ src/Blammo/Logging/Setup.hs view
@@ -0,0 +1,51 @@+module Blammo.Logging.Setup+  ( HasLogger (..)+  , withLogger+  , newLogger+  , runLoggerLoggingT+  , LoggingT+  , WithLogger (..)+  , runWithLogger+  , newLoggerEnv+  , withLoggerEnv+  , runSimpleLoggingT+  ) where++import Prelude++import Blammo.Logging+import qualified Blammo.Logging.LogSettings.Env as Env+import Blammo.Logging.Logger+import Blammo.Logging.WithLogger+import Control.Lens (view)+import Control.Monad.IO.Class (MonadIO (..))+import Control.Monad.IO.Unlift (MonadUnliftIO)+import Control.Monad.Logger.Aeson+import UnliftIO.Exception (finally)++-- | Construct a 'Logger' configured via environment variables+newLoggerEnv :: MonadIO m => m Logger+newLoggerEnv = liftIO $ newLogger =<< Env.parse++-- | Initialize logging (configured via environment variables),+--   pass a 'Logger' to the callback, and clean up at the end+--+-- Applications should avoid calling this more than once in their lifecycle.+withLoggerEnv :: MonadUnliftIO m => (Logger -> m a) -> m a+withLoggerEnv f = liftIO Env.parse >>= \logger -> withLogger logger f++-- | Construct a 'Logger' configured via environment variables and use it+runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a+runSimpleLoggingT f = do+  logger <- newLoggerEnv+  runLoggerLoggingT logger f++-- | Initialize logging, pass a 'Logger' to the callback, and clean up at the end+--+-- Applications should avoid calling this more than once in their lifecycle.+runLoggerLoggingT+  :: (MonadUnliftIO m, HasLogger env) => env -> LoggingT m a -> m a+runLoggerLoggingT env f =+  runLoggingT f (runLogAction logger) `finally` flushLogStr logger+ where+  logger = view loggerL env
src/Blammo/Logging/Simple.hs view
@@ -1,31 +1,12 @@ -- | Simplified out-of-the-box logging module Blammo.Logging.Simple-  ( newLoggerEnv-  , withLoggerEnv-  , runSimpleLoggingT-  , module Blammo.Logging+  ( module Blammo.Logging+  , module Blammo.Logging.LogSettings+  , module Blammo.Logging.ThreadContext+  , module Blammo.Logging.Setup   ) where -import Prelude- 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---- | Initialize logging (configured via environment variables),---   pass a 'Logger' to the callback, and clean up at the end------ Applications should avoid calling this more than once in their lifecycle.-withLoggerEnv :: MonadUnliftIO m => (Logger -> m a) -> m a-withLoggerEnv f = liftIO Env.parse >>= \logger -> withLogger logger f---- | Construct a 'Logger' configured via environment variables and use it-runSimpleLoggingT :: MonadUnliftIO m => LoggingT m a -> m a-runSimpleLoggingT f = do-  logger <- newLoggerEnv-  runLoggerLoggingT logger f+import Blammo.Logging.LogSettings+import Blammo.Logging.Setup+import Blammo.Logging.ThreadContext
+ src/Blammo/Logging/ThreadContext.hs view
@@ -0,0 +1,10 @@+module Blammo.Logging.ThreadContext+  ( MonadMask+  , withThreadContext+  , myThreadContext+  , Pair+  ) where++import Control.Monad.Catch (MonadMask)+import Control.Monad.Logger.Aeson (myThreadContext, withThreadContext)+import Data.Aeson.Types (Pair)
tests/Blammo/Logging/LoggerSpec.hs view
@@ -6,8 +6,8 @@  import Prelude -import Blammo.Logging import Blammo.Logging.Logger+import Blammo.Logging.Simple import Control.Monad.Reader (runReaderT) import Data.Aeson (Value (..)) import qualified Data.Aeson.Compat as KeyMap
tests/Blammo/Logging/TerminalSpec.hs view
@@ -9,7 +9,8 @@ import Blammo.Logging import Blammo.Logging.Logger (LoggedMessage (..)) import Blammo.Logging.Terminal-import Data.Aeson+import Data.Aeson (encode, object)+import Data.Aeson.Types (Object, Pair, Value (..)) import Data.ByteString (ByteString) import qualified Data.ByteString as BS import qualified Data.ByteString.Char8 as BS8