diff --git a/src/Ambar/Emulator/Projector.hs b/src/Ambar/Emulator/Projector.hs index db5f7ab..46c165a 100644 --- a/src/Ambar/Emulator/Projector.hs +++ b/src/Ambar/Emulator/Projector.hs @@ -18,6 +18,7 @@ import qualified Data.ByteString.Lazy as LB import Data.Maybe (listToMaybe, fromMaybe) import Data.String (fromString) import Data.Text (Text) +import qualified Data.Text.Encoding as Text import qualified Data.Text as Text import Control.Concurrent.Async (forConcurrently_) import Control.Monad.Extra (whileM) @@ -83,8 +84,9 @@ project logger_ Projection{..} = Left err -> fatal logger (show err) Right (bs, meta) -> do record <- decode logger bs - retrying logger $ Transport.sendJSON p_transport (toMsg source record) - logInfo logger $ "sent. " <> relevantFields (s_source source) record + let logger' = annotate (relevantFields (s_source source) record) logger + retrying logger' $ Transport.sendJSON p_transport (toMsg source record) + logInfo logger' ("sent." :: Text) Topic.commit consumer meta return True @@ -99,7 +101,12 @@ project logger_ Projection{..} = } decode logger bs = case Json.eitherDecode $ LB.fromStrict bs of - Left err -> fatal logger $ "decoding error: " <> err + Left err -> + let + raw_chars_to_show = 1000 + raw = take raw_chars_to_show $ Text.unpack $ Text.decodeUtf8 bs + in + fatal logger $ "decoding error: " <> err <> "\nraw: " <> raw Right v -> return v -- | Fields to print when a record is sent.