@@ -5,6 +5,7 @@ module Katip.Scribes.Handle
55 -- * exported for benchmarking
66 , mkHandleScribe'
77 , bbFormat
8+ , bbFormatColor
89 , colorFormat
910 ) where
1011
@@ -67,6 +68,7 @@ mkHandleScribe' fmt h sev verb = do
6768
6869
6970-------------------------------------------------------------------------------
71+bbFormat :: LogContext a => Verbosity -> Item a -> Builder
7072bbFormat verb Item{..} =
7173 brackets nowStr <>
7274 brackets (mconcat $ map fromText $ intercalateNs itemNamespace) <>
@@ -83,6 +85,33 @@ bbFormat verb Item{..} =
8385
8486
8587-------------------------------------------------------------------------------
88+bbFormatColor :: LogContext a => Verbosity -> Item a -> Builder
89+bbFormatColor verb Item{..} =
90+ brackets nowStr <>
91+ brackets (mconcat $ map fromText $ intercalateNs itemNamespace) <>
92+ brackets (fromText (renderSeverity' itemSeverity)) <>
93+ brackets (fromString itemHost) <>
94+ brackets (fromString (show itemProcess)) <>
95+ brackets (fromString (show itemThread)) <>
96+ mconcat ks <>
97+ maybe mempty (brackets . fromString . locationToString) itemLoc <>
98+ fromText " " <> fromText itemMessage
99+ where
100+ nowStr = fromString $ formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" itemTime
101+ ks = map brackets $ getKeys verb itemPayload
102+ renderSeverity' s = case s of
103+ Emergency -> red $ renderSeverity s
104+ Alert -> red $ renderSeverity s
105+ Critical -> red $ renderSeverity s
106+ Error -> red $ renderSeverity s
107+ Warning -> yellow $ renderSeverity s
108+ _ -> renderSeverity s
109+ red = colorize "31"
110+ yellow = colorize "33"
111+ colorize c s = "\ESC["<> c <> "m" <> s <> "\ESC[0m"
112+
113+-------------------------------------------------------------------------------
114+colorFormat :: LogContext a => Verbosity -> Item a -> Builder
86115colorFormat verb Item{..} = disp $
87116 PP.brackets (PP.string nowStr) <>
88117 PP.brackets (PP.string $ fromChunks $ intercalateNs itemNamespace) <>