@@ -8,6 +8,7 @@ import Control.Monad
8import Data.Aeson
8import Data.Aeson
9import qualified Data.HashMap.Strict as HM
9import qualified Data.HashMap.Strict as HM
10import Data.Monoid
10import Data.Monoid
11+import Data.Text (Text)
11import Data.Text.Lazy.Builder
12import Data.Text.Lazy.Builder
12import Data.Text.Lazy.IO as T
13import Data.Text.Lazy.IO as T
13import Data.Time
14import Data.Time
@@ -26,18 +27,17 @@ brackets m = fromText "[" <> m <> fromText "]"
27-------------------------------------------------------------------------------
28-------------------------------------------------------------------------------
28getKeys :: LogItem s => Verbosity -> s -> [Builder]
29getKeys :: LogItem s => Verbosity -> s -> [Builder]
29−getKeys verb a = rendPair A.<$> HM.toList (payloadObject verb a)
30+getKeys verb a = concat (renderPair A.<$> HM.toList (payloadObject verb a))
31− rendPair (k,v) = fromText k <> fromText ":" <> (renderPrim v)
34−-------------------------------------------------------------------------------
35−renderPrim :: Value -> Builder
32+ renderPair :: (Text, Value) -> [Builder]
35+ Object o -> concat [renderPair (k <> "." <> k', v') | (k', v') <- HM.toList o]
36−renderPrim (String t) = fromText t
36+ String t -> [fromText (k <> ":" <> t)]
37−renderPrim (Number s) = fromString (show s)
37+ Number n -> [fromText (k <> ":") <> fromString (show n)]
38−renderPrim (Bool b) = fromString (show b)
38+ Bool b -> [fromText (k <> ":") <> fromString (show b)]
39−renderPrim Null = fromText "null"
39+ Null -> [fromText (k <> ":null")]
40−renderPrim _ = mempty
40+ _ -> mempty -- Can't think of a sensible way to handle arrays
43-------------------------------------------------------------------------------
43-------------------------------------------------------------------------------