packages feed

monad-logger-aeson 0.1.0.1 → 0.2.0.0

raw patch · 39 files changed

+193/−185 lines, 39 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Control.Monad.Logger.Aeson: (.=) :: (KeyValue kv, ToJSON v) => Key -> v -> kv
+ Control.Monad.Logger.Aeson: infixr 8 .=

Files

CHANGELOG.md view
@@ -1,5 +1,10 @@ # Change log +## 0.2.0.0++* Deprecate `(.@)` in favor of `(.=)` from `aeson`+* Re-export `(.=)` from `aeson`+ ## 0.1.0.1  * Relax lower bound on `base`: 4.14.3.0 -> 4.14.0.0
README.md view
@@ -81,7 +81,7 @@ We'll opt for the former here:  ```haskell-logDebug $ "Doing stuff" :# ["x" .@ x]+logDebug $ "Doing stuff" :# ["x" .= x] ```  Note that the `logInfo` call did not give us a compiler error, as `Message` has
app/readme-example.hs view
@@ -8,7 +8,7 @@  doStuff :: (MonadLogger m) => Int -> m () doStuff x = do-  logDebug $ "Doing stuff" :# ["x" .@ x]+  logDebug $ "Doing stuff" :# ["x" .= x]  main :: IO () main = do
library/Control/Monad/Logger/Aeson.hs view
@@ -55,6 +55,9 @@   , defaultLogStr   , defaultHandleFromLevel +    -- * Re-exports from @aeson@+  , (.=)+     -- * Re-exports from @monad-logger@   , module Log   ) where@@ -90,7 +93,7 @@ import Control.Monad.Logger.Aeson.Internal   ( LoggedMessage(..), Message(..), OutputOptions(..), (.@), KeyMap   )-import Data.Aeson (Value(String))+import Data.Aeson (KeyValue((.=)), Value(String)) import Data.Aeson.Types (Pair) import Data.Text (Text) import Data.Time (UTCTime)@@ -219,14 +222,14 @@ -- subsequently logged from our endpoint handler will automatically include that -- request ID: ----- > import Control.Monad.Logger.Aeson ((.@), withThreadContext)+-- > import Control.Monad.Logger.Aeson ((.=), withThreadContext) -- > import Network.Wai (Middleware) -- > import qualified Data.UUID.V4 as UUID -- > -- > addRequestId :: Middleware -- > addRequestId app = \request sendResponse -> do -- >   uuid <- UUID.nextRandom--- >   withThreadContext ["requestId" .@ uuid] do+-- >   withThreadContext ["requestId" .= uuid] do -- >     app request sendResponse -- -- If we're coming from a Java background, it may be helpful for us to draw@@ -466,7 +469,7 @@ -- > -- > doStuff :: (MonadLogger m) => Int -> m () -- > doStuff x = do--- >   logDebug $ "Doing stuff" :# ["x" .@ x]+-- >   logDebug $ "Doing stuff" :# ["x" .= x] -- > -- > main :: IO () -- > main = do
library/Control/Monad/Logger/Aeson/Internal.hs view
@@ -101,15 +101,15 @@ keyMapUnion :: KeyMap v -> KeyMap v -> KeyMap v keyMapUnion = AesonCompat.union --- | Synonym for '.=' from @aeson@.+-- | Synonym for '(.=)' from @aeson@. ----- We export this synonym rather than directly exporting '.=' to avoid clashing--- if the user has open-imported both "Control.Monad.Logger.Aeson" and--- "Data.Aeson".+-- This operator is deprecated and will be removed in a future version. Please+-- use '(.=)' instead, which is re-exported from "Data.Aeson". -- -- @since 0.1.0.0 (.@) :: (KeyValue kv, ToJSON v) => Key -> v -> kv (.@) = (.=)+{-# DEPRECATED (.@) "This operator will be removed in a future major version." #-}  -- | This type is the Haskell representation of each JSON log message produced -- by this library.@@ -178,29 +178,29 @@ instance ToJSON LoggedMessage where   toJSON loggedMessage =     Aeson.object $ Maybe.catMaybes-      [ Just $ "time" .@ loggedMessageTimestamp-      , Just $ "level" .@ logLevelToText loggedMessageLevel+      [ Just $ "time" .= loggedMessageTimestamp+      , Just $ "level" .= logLevelToText loggedMessageLevel       , case loggedMessageLoc of           Nothing -> Nothing-          Just loc -> Just $ "location" .@ locToJSON loc+          Just loc -> Just $ "location" .= locToJSON loc       , case loggedMessageLogSource of           Nothing -> Nothing-          Just logSource -> Just $ "source" .@ logSource+          Just logSource -> Just $ "source" .= logSource       , if loggedMessageThreadContext == mempty then           Nothing         else-          Just $ "context" .@ Object loggedMessageThreadContext-      , Just $ "message" .@ messageJSON+          Just $ "context" .= Object loggedMessageThreadContext+      , Just $ "message" .= messageJSON       ]     where     locToJSON :: Loc -> Value     locToJSON loc =       Aeson.object-        [ "package" .@ loc_package-        , "module" .@ loc_module-        , "file" .@ loc_filename-        , "line" .@ fst loc_start-        , "char" .@ snd loc_start+        [ "package" .= loc_package+        , "module" .= loc_module+        , "file" .= loc_filename+        , "line" .= fst loc_start+        , "char" .= snd loc_start         ]       where       Loc { loc_filename, loc_package, loc_module, loc_start } = loc@@ -208,11 +208,11 @@     messageJSON :: Value     messageJSON =       Aeson.object $ Maybe.catMaybes-        [ Just $ "text" .@ loggedMessageText+        [ Just $ "text" .= loggedMessageText         , if loggedMessageMeta == mempty then             Nothing           else-            Just $ "meta" .@ Object loggedMessageMeta+            Just $ "meta" .= Object loggedMessageMeta         ]      LoggedMessage@@ -267,8 +267,8 @@ -- -- @ -- 'Control.Monad.Logger.Aeson.logDebug' $ "Some log message with metadata" ':#'---   [ "bloorp" '.@' (42 :: 'Int')---   , "bonk" '.@' ("abc" :: 'Text')+--   [ "bloorp" '.=' (42 :: 'Int')+--   , "bonk" '.=' ("abc" :: 'Text') --   ] -- @ --@@ -447,7 +447,7 @@  messageSeries :: Message -> Series messageSeries message =-  "text" .@ messageText+  "text" .= messageText     <> ( if null messageMeta then            mempty          else@@ -460,7 +460,7 @@ pairsEncoding = Aeson.pairs . pairsSeries  pairsSeries :: [Pair] -> Series-pairsSeries = mconcat . fmap (uncurry (.@))+pairsSeries = mconcat . fmap (uncurry (.=))  levelEncoding :: LogLevel -> Encoding levelEncoding = Aeson.text . logLevelToText
monad-logger-aeson.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           monad-logger-aeson-version:        0.1.0.1+version:        0.2.0.0 synopsis:       JSON logging using monad-logger interface description:    @monad-logger-aeson@ provides structured JSON logging using @monad-logger@'s                 interface.
package.yaml view
@@ -1,5 +1,5 @@ name: monad-logger-aeson-version: '0.1.0.1'+version: '0.2.0.0' github: "jship/monad-logger-aeson" license: MIT license-file: LICENSE.md
test-suite/TestCase/LogDebug/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logDebug, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logDebug, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logDebug "No metadata"     , logFilePath     , expectedValue =@@ -67,7 +67,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogDebug/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebug)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebug) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logDebug $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -69,8 +69,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogDebug/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebug, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebug, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logDebug $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -74,13 +74,13 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogDebugNS/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logDebugNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logDebugNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logDebugNS "tests" "No metadata"     , logFilePath     , expectedValue =@@ -68,7 +68,7 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogDebugNS/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebugNS)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebugNS) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logDebugNS "tests" $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -70,8 +70,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogDebugNS/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebugNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logDebugNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logDebugNS "tests" $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -75,13 +75,13 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogError/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logError, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logError, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logError "No metadata"     , logFilePath     , expectedValue =@@ -67,7 +67,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogError/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logError)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logError) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logError $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -69,8 +69,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogError/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logError, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logError, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logError $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -74,13 +74,13 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogErrorNS/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logErrorNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logErrorNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logErrorNS "tests" "No metadata"     , logFilePath     , expectedValue =@@ -68,7 +68,7 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogErrorNS/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logErrorNS)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logErrorNS) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logErrorNS "tests" $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -70,8 +70,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogErrorNS/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logErrorNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logErrorNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logErrorNS "tests" $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -75,13 +75,13 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogInfo/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logInfo, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logInfo, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logInfo "No metadata"     , logFilePath     , expectedValue =@@ -67,7 +67,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogInfo/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfo)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfo) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logInfo $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -69,8 +69,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogInfo/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfo, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfo, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logInfo $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -74,13 +74,13 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogInfoNS/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logInfoNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logInfoNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logInfoNS "tests" "No metadata"     , logFilePath     , expectedValue =@@ -68,7 +68,7 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogInfoNS/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfoNS)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfoNS) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logInfoNS "tests" $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -70,8 +70,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogInfoNS/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfoNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logInfoNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logInfoNS "tests" $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -75,13 +75,13 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogOther/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logOther, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logOther, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logOther (LevelOther "foo") "No metadata"     , logFilePath     , expectedValue =@@ -67,7 +67,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogOther/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOther)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOther) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logOther (LevelOther "foo") $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -69,8 +69,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogOther/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOther, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOther, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logOther (LevelOther "foo") $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -74,13 +74,13 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogOtherNS/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logOtherNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logOtherNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logOtherNS "tests" (LevelOther "foo") "No metadata"     , logFilePath     , expectedValue =@@ -68,7 +68,7 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogOtherNS/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOtherNS)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOtherNS) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logOtherNS "tests" (LevelOther "foo") $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -70,8 +70,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogOtherNS/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOtherNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logOtherNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logOtherNS "tests" (LevelOther "foo") $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -75,13 +75,13 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogWarn/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), logWarn, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), logWarn, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logWarn $ "No metadata"     , logFilePath     , expectedValue =@@ -67,7 +67,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogWarn/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarn)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarn) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logWarn $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -69,8 +69,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogWarn/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarn, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarn, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logWarn $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -74,13 +74,13 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogWarnNS/MetadataNoThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( Loc(..), LogLevel(..), LoggedMessage(..), (.@), logWarnNS, withThreadContext+  ( Loc(..), LogLevel(..), LoggedMessage(..), (.=), logWarnNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,7 +19,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logWarnNS "tests" "No metadata"     , logFilePath     , expectedValue =@@ -68,7 +68,7 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "No metadata"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/LogWarnNS/MetadataYesThreadContextNo.hs view
@@ -5,7 +5,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarnNS)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarnNS) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -17,8 +17,8 @@   TestCase     { actionUnderTest = do         logWarnNS "tests" $ "With metadata" :#-          [ "a" .@ (42 :: Int)-          , "b" .@ ("x" :: String)+          [ "a" .= (42 :: Int)+          , "b" .= ("x" :: String)           ]     , logFilePath     , expectedValue =@@ -70,8 +70,8 @@           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/LogWarnNS/MetadataYesThreadContextYes.hs view
@@ -7,7 +7,7 @@   ) where  import Control.Monad.Logger.Aeson-  ( (.@), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarnNS, withThreadContext+  ( (.=), Loc(..), LogLevel(..), LoggedMessage(..), Message(..), logWarnNS, withThreadContext   ) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..))@@ -19,10 +19,10 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           logWarnNS "tests" $ "With metadata" :#-            [ "a" .@ (42 :: Int)-            , "b" .@ ("x" :: String)+            [ "a" .= (42 :: Int)+            , "b" .= ("x" :: String)             ]     , logFilePath     , expectedValue =@@ -75,13 +75,13 @@           , loggedMessageLogSource = Just "tests"           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "With metadata"           , loggedMessageMeta =               Internal.keyMapFromList-                [ "a" .@ (42 :: Int)-                , "b" .@ ("x" :: String)+                [ "a" .= (42 :: Int)+                , "b" .= ("x" :: String)                 ]           }     }
test-suite/TestCase/MonadLogger/LogDebug/ThreadContextYes.hs view
@@ -6,7 +6,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), Loc(..), LogLevel(..), LoggedMessage(..), withThreadContext)+import Control.Monad.Logger.Aeson ((.=), Loc(..), LogLevel(..), LoggedMessage(..), withThreadContext) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -18,7 +18,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           ML.logDebug "Logged from 'monad-logger'"     , logFilePath     , expectedValue =@@ -66,7 +66,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "Logged from 'monad-logger'"           , loggedMessageMeta = Internal.emptyKeyMap
test-suite/TestCase/MonadLogger/LogDebugN/ThreadContextYes.hs view
@@ -6,7 +6,7 @@   ( testCase   ) where -import Control.Monad.Logger.Aeson ((.@), LogLevel(..), LoggedMessage(..), withThreadContext)+import Control.Monad.Logger.Aeson ((.=), LogLevel(..), LoggedMessage(..), withThreadContext) import Data.Aeson.QQ.Simple (aesonQQ) import Data.Time (UTCTime(..)) import TestCase (TestCase(..))@@ -18,7 +18,7 @@ testCase logFilePath =   TestCase     { actionUnderTest = do-        withThreadContext ["reqId" .@ ("74ec1d0b" :: String)] do+        withThreadContext ["reqId" .= ("74ec1d0b" :: String)] do           ML.logDebugN "Logged from 'monad-logger'"     , logFilePath     , expectedValue =@@ -52,7 +52,7 @@           , loggedMessageLogSource = Nothing           , loggedMessageThreadContext =               Internal.keyMapFromList-                [ "reqId" .@ ("74ec1d0b" :: String)+                [ "reqId" .= ("74ec1d0b" :: String)                 ]           , loggedMessageText = "Logged from 'monad-logger'"           , loggedMessageMeta = Internal.emptyKeyMap