1 | module Log4Types.Message
3 | import Log4Types.Core
4 | import Log4Types.Format
14 | record SimpleMsg where
15 | constructor MkSimpleMsg
20 | Show SimpleMsg where
21 | show msg = fmtSeverity msg.severity ++ " " ++ msg.text
24 | Loggable SimpleMsg where
25 | logFields renderer msg acc =
26 | renderer.addField "severity" (StrVal $
show msg.severity) $
27 | renderer.addField "message" (StrVal msg.text) acc
40 | fields : List (String, LogParamValue)
45 | fmtMsgWith : (fmtSev : Severity -> String) -> Msg -> String
46 | fmtMsgWith fmtSev msg =
47 | let line = fmtSev msg.severity ++ " " ++ msg.text
48 | in if null msg.fields then line else line ++ " " ++ fmtFields msg.fields
52 | show = fmtMsgWith fmtSeverity
56 | logFields renderer msg acc =
57 | let acc' = renderer.addField "severity" (StrVal $
show msg.severity) $
58 | renderer.addField "message" (StrVal msg.text) acc
59 | in foldl (\a, (k, v) => renderer.addField k v a) acc' msg.fields
68 | mkDebug : String -> Msg
69 | mkDebug t = MkMsg Debug t []
73 | mkInfo : String -> Msg
74 | mkInfo t = MkMsg Info t []
78 | mkWarning : String -> Msg
79 | mkWarning t = MkMsg Warning t []
83 | mkError : String -> Msg
84 | mkError t = MkMsg Error t []