5 | module Log4Types.ANSI
9 | import public Control.ANSI
10 | import Log4Types.Core
11 | import Log4Types.Format
13 | import Log4Types.Message
22 | severityColor : Severity -> Color
23 | severityColor Debug = Green
24 | severityColor Info = Blue
25 | severityColor Warning = Yellow
26 | severityColor Error = Red
33 | fmtColouredSeverity : Severity -> String
34 | fmtColouredSeverity sev = show $
colored (severityColor sev) (fmtSeverity sev)
39 | fmtColouredFields : List (String, LogParamValue) -> String
40 | fmtColouredFields = unwords . map fmtColouredField
42 | fmtColouredField : (String, LogParamValue) -> String
43 | fmtColouredField ("severity", StrVal "Debug") = fmtColouredSeverity Debug
44 | fmtColouredField ("severity", StrVal "Info") = fmtColouredSeverity Info
45 | fmtColouredField ("severity", StrVal "Warning") = fmtColouredSeverity Warning
46 | fmtColouredField ("severity", StrVal "Error") = fmtColouredSeverity Error
47 | fmtColouredField field = fmtFields [field]
54 | stdoutIsTTY : HasIO io => io Bool
55 | stdoutIsTTY = isTTY stdout
60 | fmtColouredMsg : Msg -> String
61 | fmtColouredMsg = fmtMsgWith fmtColouredSeverity
68 | fmtMsgForTTY : (isTTY : Bool) -> Msg -> String
69 | fmtMsgForTTY True = fmtColouredMsg
70 | fmtMsgForTTY False = show
75 | colouredLogStdout : HasIO io => io (LogAction io Msg)
76 | colouredLogStdout = do
78 | pure $
cmap (fmtMsgForTTY tty) logStringStdout