log-base 0.11.0.0 → 0.11.1.0
raw patch · 4 files changed
+48/−7 lines, 4 filesdep ~aesondep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: aeson, base
API changes (from Hackage documentation)
+ Log.Internal.Aeson.Compat: doName :: Monad m => (Text -> m Text) -> Key -> m Key
+ Log.Internal.Aeson.Compat: fromText :: Text -> Key
- Log: (.=) :: (KeyValue kv, ToJSON v) => Text -> v -> kv
+ Log: (.=) :: (KeyValue kv, ToJSON v) => Key -> v -> kv
Files
- CHANGELOG.md +5/−0
- log-base.cabal +5/−5
- src/Log/Internal/Aeson/Compat.hs +36/−0
- src/Log/Monad.hs +2/−2
CHANGELOG.md view
@@ -1,3 +1,8 @@+# log-base-0.11.1.0 (2022-04-04)+* Add support for aeson 2.0.1.0.+* Add support for GHC 9.2.+* Drop support for GHC < 8.8.+ # log-base-0.11.0.0 (2021-10-11) * Add support for defining maximum log level.
log-base.cabal view
@@ -1,5 +1,5 @@ name: log-base-version: 0.11.0.0+version: 0.11.1.0 synopsis: Structured logging solution (base package) description: A library that provides a way to record structured log@@ -21,8 +21,7 @@ build-type: Simple cabal-version: >=1.10 extra-source-files: CHANGELOG.md, README.md-tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4- || ==9.0.1+tested-with: GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.2 Source-repository head Type: git@@ -36,11 +35,12 @@ Log.Backend.Text, Log.Class, Log.Data,+ Log.Internal.Aeson.Compat, Log.Internal.Logger, Log.Logger, Log.Monad- build-depends: base >= 4.9 && <5,- aeson >=0.11.0.0 && <1.6,+ build-depends: base >= 4.13 && <5,+ aeson >= 1.0, aeson-pretty >=0.8.2, bytestring, deepseq,
+ src/Log/Internal/Aeson/Compat.hs view
@@ -0,0 +1,36 @@+{-# LANGUAGE CPP #-}+module Log.Internal.Aeson.Compat+ ( module Map+#if !MIN_VERSION_aeson(2,0,1)+ , KeyMap+#endif+ , fromText+ , doName+ ) where++import Data.Text+import Prelude++#if MIN_VERSION_aeson(2,0,1)+import Data.Aeson.KeyMap as Map +import qualified Data.Aeson.Key as K++fromText :: Text -> K.Key+fromText = K.fromText++doName :: Monad m => (Text -> m Text) -> K.Key -> m K.Key+doName f = fmap K.fromText . f . K.toText++#else++import Data.HashMap.Strict as Map++type KeyMap a = Map.HashMap Text a++fromText :: Text -> Text+fromText = id++doName :: (Text -> m Text) -> Text -> m Text+doName = id++#endif
src/Log/Monad.hs view
@@ -28,11 +28,11 @@ import Prelude import qualified Control.Monad.Fail as MF import qualified Control.Exception as E-import qualified Data.HashMap.Strict as H import Log.Class import Log.Data import Log.Logger+import qualified Log.Internal.Aeson.Compat as AC type InnerLogT = ReaderT LoggerEnv @@ -89,7 +89,7 @@ -- the singleton value with key reflecting its type. It's required for -- ElasticSearch as ES needs fields with the same name to be of the -- same type in all log messages.- Object obj -> Object . H.union obj $ H.fromList leData+ Object obj -> Object . AC.union obj $ AC.fromList leData _ | null leData -> object [dataTyped data_ .= data_] | otherwise -> object $ (dataTyped data_, data_) : leData }