packages feed

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 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       }